

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

# 以订阅者的身份自动将 AWS Data Exchange 资产修订导出到 S3 存储桶
<a name="auto-export-rev-s3-console-sub"></a>

当提供商发布新修订时，您可以选择自动将新修订导出到您的 Amazon S3 存储桶。您最多可以将新修订导出到五个 S3 存储桶。新修订将自动出现在您选择的 S3 存储桶中。

**Topics**
+ [S3 存储桶策略权限的先决条件](#auto-export-rev-s3-bucket-policy-prereq)
+ [以订阅者身份自动将修订导出到 S3 存储桶（控制台）](#auto-export-rev-s3-console-sub-proc)
+ [以订阅者的身份自动将修订导出到 S3 存储桶 (AWS SDKs)](#auto-export-rev-s3-prog-sub)

**注意**  
要自动将修订版导出到您选择的 S3 存储桶，您的 S3 存储桶必须具有允许将数据导出 AWS Data Exchange 到其中的权限的存储桶策略。有关更多信息，请参阅 [S3 存储桶策略权限的先决条件](#auto-export-rev-s3-bucket-policy-prereq)。

## S3 存储桶策略权限的先决条件
<a name="auto-export-rev-s3-bucket-policy-prereq"></a>

在自动将修订版导出到 Amazon S3 存储桶之前，您必须禁用申请者付款，并且您的 Amazon S3 存储桶必须具有允许将数据导出 AWS Data Exchange 到其中的权限的存储桶策略。以下过程介绍了如何使用这些权限编辑现有的 S3 存储桶策略或创建 S3 存储桶策略。

如果您的 S3 存储桶配置为 SSE-KMS 加密，则配置自动导出作业的用户必须拥有对 KMS 密钥的 `CreateGrant` 权限，这样 AWS Data Exchange 才能将对象复制到您的 S3 存储桶中。

**重要**  
为了验证是否满足 S3 存储桶策略权限的先决条件，在自动导出过程中，具有 `_ADX-TEST-ACCOUNTID#` 命名格式的对象将被添加到该 S3 存储桶。

**Topics**
+ [编辑现有的 S3 存储桶策略](#bucket-policy-prereq-existing-s3-bucket-policy)
+ [创建 S3 存储桶策略](#bucket-policy-prereq-create-s3-bucket-policy)

### 编辑现有的 S3 存储桶策略
<a name="bucket-policy-prereq-existing-s3-bucket-policy"></a>

如果您的 S3 存储桶有存储桶策略，请完成以下过程，以允许 AWS Data Exchange 向其导出数据。

**要编辑现有的 S3 存储桶策略，请按以下步骤操作：**

1. 导航到您要导出修订的存储桶。

1. 选择**权限**选项卡，然后在存储桶策略部分中选择**编辑**。

1. 复制以下语句，并将其粘贴在语句列表末尾。

   ```
       {
         "Effect": "Allow",
         "Principal": {
         "Service": "dataexchange.amazonaws.com"
         },
         "Action": [
           "s3:PutObject",
           "s3:PutObjectAcl"
         ],
         "Resource": "arn:aws:s3:::<BUCKET-NAME>/*",
         "Condition": {
           "StringEquals": { 
             "aws:SourceAccount": "<AWS ID>"
           }
         }
       }
   ```

1. `<BUCKET-NAME>`替换为您的 S3 存储桶的名称，然后`<AWS ID>`替换为您的 AWS ID。

1. 选择**保存更改**。

1. 如果您想添加更多存储桶作为自动导出作业的目标位置，请从步骤 1 开始重复该过程。

### 创建 S3 存储桶策略
<a name="bucket-policy-prereq-create-s3-bucket-policy"></a>

如果您的 S3 存储桶没有存储桶策略，请完成以下过程以创建允许 AWS Data Exchange 向其导出数据的 S3 存储桶策略。

**要创建 S3 存储桶策略，请按以下步骤操作：**

1. 导航到您要导出修订的存储桶。

1. 选择**权限**选项卡，然后在存储桶策略部分中选择**编辑**。

1. 复制下方完整的存储桶策略，然后将其粘贴到存储桶策略编辑器中。

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Effect": "Allow",
         "Principal": {
         "Service": "dataexchange.amazonaws.com"
         },
         "Action": [
           "s3:PutObject",
           "s3:PutObjectAcl"
         ],
         "Resource": "arn:aws:s3:::<BUCKET-NAME>/*",
         "Condition": {
           "StringEquals": { 
             "aws:SourceAccount": "<AWS ID>"
           }
         }
       }
     ]
   }
   ```

------

1. `<BUCKET-NAME>`替换为您的 S3 存储桶的名称，然后`<AWS ID>`替换为您的 AWS ID。

1. 选择**保存更改**。

1. 如果您想添加更多存储桶作为自动导出作业的目标位置，请从步骤 1 开始重复该过程。

## 以订阅者身份自动将修订导出到 S3 存储桶（控制台）
<a name="auto-export-rev-s3-console-sub-proc"></a>

**注意**  
要自动将修订版导出到您选择的 S3 存储桶，您的 S3 存储桶必须具有允许将数据导出 AWS Data Exchange 到其中的权限的存储桶策略。有关更多信息，请参阅 [S3 存储桶策略权限的先决条件](#auto-export-rev-s3-bucket-policy-prereq)。

**要以订阅者身份自动将修订导出到 S3 存储桶（控制台），请按以下步骤操作：**

1. 打开您的 Web 浏览器，登录到 [AWS Data Exchange 控制台](https://console.aws.amazon.com/dataexchange)。

1. 在左侧导航窗格中，为**我的订阅**选择**授权数据**。

1. 在**授权数据**中，选择具有您要导出的修订的产品。

1. 在**授权数据集**中，选择该数据集。

1. 在**修订**选项卡的**自动导出作业目标**下，选择**操作**，然后选择**添加自动导出作业目标**。

1. 在**添加自动导出作业目标**中，选择**简单**或**高级**目标选项。

   1. 如果您选择**简单**选项，请从下拉列表和加密选项中选择 Amazon S3 存储桶文件夹目标，然后选择**添加存储桶目标**。

   1. 如果您选择**高级**选项，请从下拉列表中选择 Amazon S3 存储桶文件夹目标，选择[键命名模式](revision-export-keypatterns.md)并将其附加到路径中。

1. 查看**输出**。

1. 设置**加密选项**，查看 **Amazon S3 定价**，然后选择**添加存储桶目标**。

   Amazon S3 存储桶目标显示在**自动导出作业目标**下的**修订**选项卡上。

   此时，自动导出您的修订的作业已启动。

   为了验证是否满足 S3 存储桶策略权限的先决条件，具有 `_ADX-TEST-ACCOUNTID#` 命名格式的对象将被添加到该 S3 存储桶。

   作业完成后，**作业**部分的**状态**字段将更新为**已完成**。

   要添加其他目标，请选择**操作**，然后选择**添加自动导出作业目标**。

   要编辑目标，请选择您要编辑的目标，再选择**操作**，然后选择**编辑目标配置**。

   要删除目标，请选择**操作**，然后选择**删除自动导出作业目标**。

## 以订阅者的身份自动将修订导出到 S3 存储桶 (AWS SDKs)
<a name="auto-export-rev-s3-prog-sub"></a>

**注意**  
要自动将修订版导出到您选择的 S3 存储桶，您的 S3 存储桶必须具有允许将数据导出 AWS Data Exchange 到其中的权限的存储桶策略。有关更多信息，请参阅 [S3 存储桶策略权限的先决条件](#auto-export-rev-s3-bucket-policy-prereq)。

**自动将修订导出到 S3 存储桶 (AWS SDKs)**

1. 创建 `Create_Event_Action` 请求。

1. 在该请求中包含以下内容：
   + `Action`
     + `ExportRevisionToS3`
       + `Encryption`
         + `KmsKeyArn`
         + `Type`
     + `RevisionDestination`
       + `Bucket`
       + `KeyPattern`
   + `Event`
     + `RevisionPublished`
       + `DataSetId`
   + `Tags`

1. 如有必要，请修改键模式。Amazon S3 对象键默认为 `{Revision.CreatedAt}/{Asset.Name}` 键模式。

   有关键模式的更多信息，请参阅[从中导出资源修订版时的关键模式 AWS Data Exchange](revision-export-keypatterns.md)。

   为了验证是否满足 S3 存储桶策略权限的先决条件，具有 `_ADX-TEST-ACCOUNTID#` 命名格式的对象将被添加到该 S3 存储桶。