批量处理小文件 - Amazon Snowball Edge Developer Guide
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

批量处理小文件

因为要进行加密,每个复制操作都会产生一些开销。要加快将小文件传输到Amazon SnowballEdge 设备,您可以将它们批量存储在单个存档文件中。批量处理文件时,在将它们导入到 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,焦油不可用,但您可以从适用于 Windows 的焦油网站。

      您可以从 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标志。否则,在将数据导入到 Amazon S3 时,Snowball Edge 将无法精确确定数据。

使用步骤 3 中的示例,如果您的文件夹结构为 /Logs/4 月/,其中包含文件a.txtb.txtc.txt。如果此存档文件放置在 /mybucket/ 的根目录中,则提取后数据将如下所示:

/mybucket/Logs/April/a.txt /mybucket/Logs/April/b.txt /mybucket/Logs/April/c.txt

如果存档文件被放置到 /mybukett/Test/ 中,那么解压缩将如下所示:

/mybucket/Test/Logs/April/a.txt /mybucket/Test/Logs/April/b.txt /mybucket/Test/Logs/April/c.txt