本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
批处理小文件
因为要进行加密,每个复制操作都会产生一些开销。加快将小文件传输到您的过程Amazon Snowball Edge设备,你可以将它们批量合并到一个存档中。当您将文件一起批处理时,如果这些文件是以支持的存档格式之一进行批处理的,则可以在将文件导入 Amazon S3 时自动将其提取。
通常,1 MB 或更小的文件应包含在批处理中。对您可以在一个批处理中拥有的文件数量没有硬限制,虽然我们建议您将批处理限制在约 10,000 个文件。批量文件超过 100,000 个可能会影响您返回设备后将这些文件导入 Amazon S3 的速度。我们建议每个批次的总大小不超过 100 GB。
批处理文件是一个手动过程,您管理该过程。批处理文件后,使用将它们传输到 Snowball Edge 设备Amazon CLI cp
用命令行事--metadata snowball-auto-extract=true
选项。指定snowball-auto-extract=true
在将数据导入 Amazon S3 时自动提取存档文件的内容,只要批处理文件的大小不超过 100 GB。
注意
任何大于 100 GB 的批次在导入到 Amazon S3 时都不会被提取。
批量处理小文件
-
决定要以哪种格式批处理您的小文件。自动提取功能支持
TAR
、ZIP
和tar.gz
格式。 -
确定要批量处理那些小文件,包括它们的大小和要批量处理的文件的总数。
-
在命令行上对文件进行批处理,如以下示例所示。
对于 Linux,您可以在用于将文件传输到设备的同一命令行中对文件进行批处理。
tar -cf -
/Logs/April
| aws s3 cp -s3://mybucket/batch01.tar
--metadata snowball-auto-extract=true --endpointhttp://192.0.2.0:8080
注意
或者,您可以使用您选择的存档实用工具将文件批量处理到一个或多个大型档案。但是,这种方法需要额外的本地存储以保存档案,然后再将其传输到 Snowball。
对于 Windows,当所有文件都位于运行命令的同一目录中时,使用以下示例命令对文件进行批处理:
7z a -tzip -so "test" | aws s3 cp -
s3://mybucket/batch01.zip
--metadata snowball-auto-extract=true --endpointhttp://192.0.2.0:8080
要批处理运行命令的不同目录中的文件,请使用以下示例命令:
7z a -tzip -so "test" "
c:\temp
" | aws s3 cp -s3://mybucket/batch01.zip
--metadata snowball-auto-extract=true --endpointhttp://10.x.x.x:8080
注意
对于微软 Windows 2016,tar 不可用,但你可以从中下载Windows 版塔尔网站。
你可以从 7ZIP 网站下载 7 ZIP。
-
重复此操作,直到您使用 Snowball Edge 存档了所有要传输到 Amazon S3 的小文件。
-
将存档文件传输到 Snowball。如果您希望自动提取数据,并且使用了步骤 1 中前面提到的支持的存档格式之一,请使用Amazon CLI
cp
用命令行事--metadata snowball-auto-extract=true
选项。注意
如果有非存档文件,请不要使用此命令。
创建存档文件时,提取将保持当前的数据结构。这意味着,如果您创建包含文件和文件夹的存档文件,Snowball Edge 将在采集到 Amazon S3 的过程中重新创建该文件。
存档文件将在其存储的同一目录中解压缩,并将相应地构建文件夹结构。请记住,在复制存档文件时,设置标志很重要--metadata
snowball-auto-extract=true
。否则,Snowball Edge 在将数据导入亚马逊 S3 时将不会提取数据。
使用步骤 3 中的示例,如果您的文件夹结构为 /Logs/April/,其中包含文件a.txt
,b.txt
和c.txt
。如果将此存档文件放在 /mybucket/ 的根目录中,则提取后的数据将如下所示:
/mybucket/Logs/April/a.txt /mybucket/Logs/April/b.txt /mybucket/Logs/April/c.txt
如果将存档文件放入 /myBucket/test/,则提取结果将如下所示:
/mybucket/Test/Logs/April/a.txt /mybucket/Test/Logs/April/b.txt /mybucket/Test/Logs/April/c.txt