批量处理小文件 - Amazon Snowball Edge 开发人员指南
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

批量处理小文件

因为要进行加密,每个复制操作都会产生一些开销。为了加快将小文件传输到您的过程Amazon Snowball Edge设备,您可以将它们批量存储在一个存档中。批量处理文件时,在将它们导入到 Amazon S3 时可以进行自动提取 (如果以一个受支持的存档格式对它们进行批处理)。

通常,1 MB 或更小的文件应包含在批处理中。对您可以在一个批处理中拥有的文件数量没有硬限制,虽然我们建议您将批处理限制在约 10,000 个文件。一个批处理中的文件超过 100,000 个可能会影响您返回设备后这些文件导入 Amazon S3 的速度。我们建议每个批次的总大小不超过 100 GB。

批处理文件是一个手动过程,您管理该过程。批处理文件后,请使用Amazon CLI cp命令使用--metadata snowball-auto-extract=true选项。指定snowball-auto-extract=true如果将数据导入 Amazon S3 时,只要批处理文件的大小不超过 100 GB,将自动提取存档文件的内容。

注意

任何大于 100 GB 的批次在导入到 Amazon S3 时都不会被提取。

批量处理小文件

  1. 决定要以哪种格式批处理您的小文件。自动提取功能支持 TARZIPtar.gz 格式。

  2. 确定要批量处理那些小文件,包括它们的大小和要批量处理的文件的总数。

  3. 在命令行上 Batch 文件,如以下示例所示。

    • 对于 Linux,您可以在用于将文件传输到设备的相同命令行中批处理这些文件。

      tar -cf - /Logs/April | aws s3 cp - s3://mybucket/batch01.tar --metadata snowball-auto-extract=true --endpoint http://192.0.2.0:8080
      注意

      或者,您可以使用您选择的存档实用工具将文件批量处理到一个或多个大型档案。但是,这种方法需要额外的本地存储以保存档案,然后再将其传输到 Snowball。

    • 对于 Windows,请使用以下示例命令:

      7z a -tzip -so "test" | aws s3 cp - s3://mybucket/batch01.zip --metadata snowball-auto-extract=true --endpoint http://192.0.2.0:8080
      注意

      对于微软 Windows 2016,tar 不可用,但你可以从视窗的焦油网站。

      你可以从 7ZIP 网站。

  4. 重复此步骤,直到您已存档所有要使用 Snowball Edge 传输到 Amazon S3 的小文件。

  5. 将存档的文件传输到 Snowball。如果您希望自动提取数据,且使用了在上述步骤 1 中提到的一种受支持的存档格式,请使用Amazon CLI cp命令使用- -metadata snowball-auto-extract=true选项。

    注意

    如果存在非存档文件,请不要使用此命令。

创建存档文件时,提取将维持当前的数据结构。这意味着,如果您创建包含文件和文件夹的存档文件,Snowball Edge 将在提取 Amazon S3 过程中重新创建此文件。

存档文件将被提取到存储在的同一目录中,并相应地构建文件夹结构。请记住,在复制存档文件时,设置--metadata-auto-extract=true旗帜。否则,Snowball Edge 将不会在将数据导入到 Amazon S3 时提取数据。

使用步骤 3 中的示例,如果你有包含文件的 /Logs/April/ 的文件夹结构a.txtb.txtc.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