

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

# 使用 Snowball Edge 设备从 Amazon S3 导出数据的作业
<a name="exporttype"></a>

**注意**  
目前不支持标签和元数据，换句话说，从 S3 存储桶导出对象时，所有标签和元数据都将被删除。

导出作业的数据来源是一个或多个 Amazon S3 存储桶。将任务部分的数据从 Amazon S3 移动到 AWS Snowball Edge 设备后，您可以下载任务报告。此报告将提醒您无法传输到设备的所有对象。您可以在作业的成功日志和失败日志中查找更多信息。

可以为每个导出作业导出任意数目的对象，使用的设备数目与为完成传输而使用的设备数目相同。导出任务的任务部件的每 AWS Snowball Edge 台设备都将依次交付，后续设备将在前一个任务部分进入 “正在**传输中” AWS状态后发送给**您。

您使用 Amazon S3 Adapter或 NFS 装载点将对象从设备复制到本地数据目的地之后，这些对象会另存为文件。如果将对象复制到已包含文件的位置，则所有名称相同的现有文件都将被覆盖。导出作业类型也具有本地存储和计算功能。此功能使用 NFS 接口或 Amazon S3 适配器来读取和写入数据，并根据设备本地运行的 Amazon S3 PUT 对象 API 操作触发 Lambda 函数。 AWS Snowball Edge 

当 AWS 收到退回的设备时，我们会按照 NIST 800-88 标准将其完全抹掉。

**重要**  
要导出到 Snow 设备的数据必须在 Amazon S3 中。您计划导出到 Snow 设备中的 Amazon Glacier 任何数据都必须先解冻或移至 S3 存储类别，然后才能导出。在创建 Snow 导出作业之前执行此操作。  
请不要更改、更新或删除导出的 Amazon S3 对象，直到您确认整个作业的所有内容均已复制到本地数据目标。

创建导出作业时，可导出整个 Amazon S3 存储桶或导出特定范围的对象键。

## 将数据导出到 Snowball Edge 设备时使用 Amazon S3 对象键
<a name="ranges"></a>

当您在 [AWS Snow 系列管理控制台](https://console.aws.amazon.com/snowfamily/home) 中或使用作业管理 API 创建导出作业时，可以导出整个 Amazon S3 存储桶或导出特定范围的对象键。对象键名称唯一标识存储桶中的对象。如果导出特定范围的对象键，您可以通过提供包含范围的起始值和/或包含范围的结束值，来定义范围的大小。

范围按 UTF-8 二进制排序。UTF-8 二进制数据按下列方式排序：
+ 数字 0-9 在大写和小写的英文字符之前。
+ 大写英文字符在所有小写英文字符之前。
+ 根据大写英文字符和数字排序时，小写英文字符在最后。
+ 在其他字符集内排序特殊字符。

有关 UTF-8 细节的更多信息，请参阅 [Wikipedia 上的 UTF-8](https://en.wikipedia.org/wiki/UTF-8)。

### 将数据导出到 Snowball Edge 设备时使用 Amazon S3 对象键的示例
<a name="range-examples"></a>

假定您有一个包含下列按 UTF-8 二进制顺序排序的对象和前缀的存储桶：
+ 01
+ Aardvark
+ Aardwolf
+ Aasvogel/apple
+ Aasvogel/arrow/object1
+ Aasvogel/arrow/object2
+ Aasvogel/banana
+ Aasvogel/banker/object1
+ Aasvogel/banker/object2
+ Aasvogel/cherry
+ Banana
+ Car


| 指定的范围开始 | 指定的范围结束 | 要导出的范围中的对象 | 
| --- | --- | --- | 
| （无） | （无） | 存储桶中的所有对象 | 
| （无） | Aasvogel |  01 Aardvark Aardwolf Aasvogel/apple Aasvogel/arrow/object1 Aasvogel/arrow/object2 Aasvogel/banana Aasvogel/banker/object1 Aasvogel/banker/object2 Aasvogel/cherry  | 
| （无） | Aasvogel/banana |  01 Aardvark Aardwolf Aasvogel/apple Aasvogel/arrow/object1 Aasvogel/arrow/object2 Aasvogel/banana | 
| Aasvogel | （无） |  Aasvogel/apple Aasvogel/arrow/object1 Aasvogel/arrow/object2 Aasvogel/banana Aasvogel/banker/object1 Aasvogel/banker/object2 Aasvogel/cherry Banana Car | 
| Aardwolf | （无） | Aardwolf Aasvogel/apple Aasvogel/arrow/object1 Aasvogel/arrow/object2 Aasvogel/banana Aasvogel/banker/object1 Aasvogel/banker/object2 Aasvogel/cherry Banana Car | 
| Aar | （无） | Aardvark Aardwolf Aasvogel/apple Aasvogel/arrow/object1 Aasvogel/arrow/object2 Aasvogel/banana Aasvogel/banker/object1 Aasvogel/banker/object2 Aasvogel/cherry Banana Car | 
| car | （无） | 将不导出任何对象，且在您尝试创建作业时，会收到错误消息。请注意，根据 UTF-8 二进制值，*car* 排序在 *Car* 下面。 | 
| Aar | Aarrr | Aardvark Aardwolf | 
|  Aasvogel/arrow  | Aasvogel/arrox |  Aasvogel/arrow/object1 Aasvogel/arrow/object2  | 
| Aasvogel/apple | Aasvogel/banana |  Aasvogel/apple Aasvogel/arrow/object1 Aasvogel/arrow/object2 Aasvogel/banana  | 
| Aasvogel/apple | Aasvogel/banker |  Aasvogel/apple Aasvogel/arrow/object1 Aasvogel/arrow/object2 Aasvogel/banana Aasvogel/banker/object1 Aasvogel/banker/object2  | 
| Aasvogel/apple | Aasvogel/cherry |  Aasvogel/apple Aasvogel/arrow/object1 Aasvogel/arrow/object2 Aasvogel/banana Aasvogel/banker/object1 Aasvogel/banker/object2 Aasvogel/cherry  | 

假设您有这三个存储桶，并且想要从 **folder2** 中复制所有对象。
+ s3://bucket/folder1/
+ s3://bucket/folder2/
+ s3://bucket/folder3/


| 指定的范围开始 | 指定的范围结束 | 要导出的范围中的对象 | 
| --- | --- | --- | 
| folder2/ | folder2/ | 存储桶 folder2 中的所有对象。 | 

## 将数据从 Amazon S3 导出到 Snowball Edge 设备的作业的最佳实践
<a name="export-jobs-best-practices"></a>
+ 确保数据在 Amazon S3 中，在预定作业之前批量处理小文件
+ 如果您的存储桶中有数百万个对象，请确保在导出作业定义中指定密钥范围
+ 更新对象键以删除名称中的斜杠，因为名称中带有末尾斜杠（/或\$1）的对象不会传输到 Snowball Edge
+ 对于 S3 存储桶，对象长度限制为 255 个字符。
+ 对于启用版本的 S3 存储桶，仅导出对象的当前版本。
+ 不会导出删除标记。