> ## Documentation Index
> Fetch the complete documentation index at: https://docs.brightdata.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 亚马逊数据交付至亚马逊 S3

> 配置Bright Data亚马逊爬虫API，将抓取的数据直接传送到您的亚马逊S3存储桶。

# 将 Bright Data Amazon Scraper API 配置为直接交付数据到 Amazon S3 存储桶

本指南展示如何配置 Bright Data Amazon Scraper API，以在集合作业完成时将抓取的数据直接交付到您的 Amazon S3 存储桶。

## 前置条件

* 一个 [Bright Data 账户](https://www.bright.cn/cp/start)，具有有效的 API 密钥
* 一个具有 S3 存储桶的 AWS 账户
* 具有对该存储桶的写入访问权限的 IAM 凭证
* 熟悉 [异步请求工作流](/datasets/scrapers/amazon/async-requests)

## 第 1 步：创建 S3 存储桶

如果您已有一个存储桶，请跳到第 2 步。

在 [AWS S3 控制台](https://s3.console.aws.amazon.com/s3/buckets)中：

1. 点击**创建存储桶**
2. 输入存储桶名称（例如，`amazon-scraper-data`）
3. 选择您首选的 AWS 区域
4. 保持默认设置并点击**创建存储桶**

## 第 2 步：设置 IAM 权限

创建一个 IAM 角色，授予 Bright Data 对您的存储桶的写入访问权限。

### 创建策略

在 [IAM 控制台](https://console.aws.amazon.com/iam/)中，转到**策略**并使用以下 JSON 创建新策略：

```json theme={null}
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": ["s3:PutObject", "s3:GetObject"],
      "Resource": "arn:aws:s3:::amazon-scraper-data/*"
    }
  ]
}
```

将 `amazon-scraper-data` 替换为您实际的存储桶名称。

### 为 Bright Data 创建角色

1. 转到**角色** > **创建角色**
2. 选择 **AWS 账户**作为受信实体类型
3. 输入 Bright Data 的 AWS 账户 ID：`422310177405`
4. 附加您上面创建的策略
5. 为角色命名（例如，`BrightDataS3Delivery`）
6. 记下角色 ARN（例如，`arn:aws:iam::123456789012:role/BrightDataS3Delivery`）

向信任策略添加外部 ID 条件：

```json theme={null}
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::422310177405:role/brd.ec2.zs-dca-delivery"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "sts:ExternalId": "YOUR_BRIGHT_DATA_CUSTOMER_ID"
        }
      }
    }
  ]
}
```

在 [账户设置](https://www.bright.cn/cp/setting/customer_details)中找到您的客户 ID。

## 第 3 步：在 Bright Data 中配置交付

1. 导航到您的 [scraper 配置](https://www.bright.cn/cp/scrapers)
2. 点击**交付设置**选项卡
3. 选择 **Amazon S3** 作为交付目的地
4. 输入您的凭证：
   * **存储桶名称**：您的 S3 存储桶名称
   * **角色 ARN**：第 2 步中的 IAM 角色 ARN
   * **区域**：您的 S3 存储桶区域
   * **路径前缀**（可选）：存储桶内的文件夹路径（例如，`amazon/products/`）
5. 选择您首选的文件格式（JSON、NDJSON 或 CSV）
6. 点击**保存**

## 第 4 步：触发集合

触发异步集合。结果自动交付到您的 S3 存储桶：

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST \
    "https://api.brightdata.com/datasets/v3/trigger?dataset_id=gd_l7q7dkf244hwjntr0&format=json" \
    -H "Authorization: Bearer YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '[
      {"url": "https://www.amazon.com/dp/B0CHHSFMRL"},
      {"url": "https://www.amazon.com/dp/B09V3KXJPB"},
      {"url": "https://www.amazon.com/dp/B0BDJ279KF"}
    ]'
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      "https://api.brightdata.com/datasets/v3/trigger",
      params={"dataset_id": "gd_l7q7dkf244hwjntr0", "format": "json"},
      headers={
          "Authorization": "Bearer YOUR_API_KEY",
          "Content-Type": "application/json",
      },
      json=[
          {"url": "https://www.amazon.com/dp/B0CHHSFMRL"},
          {"url": "https://www.amazon.com/dp/B09V3KXJPB"},
          {"url": "https://www.amazon.com/dp/B0BDJ279KF"},
      ],
  )

  print("Snapshot ID:", response.json()["snapshot_id"])
  ```

  ```javascript Node.js theme={null}
  const response = await fetch(
    "https://api.brightdata.com/datasets/v3/trigger?dataset_id=gd_l7q7dkf244hwjntr0&format=json",
    {
      method: "POST",
      headers: {
        "Authorization": "Bearer YOUR_API_KEY",
        "Content-Type": "application/json",
      },
      body: JSON.stringify([
        { url: "https://www.amazon.com/dp/B0CHHSFMRL" },
        { url: "https://www.amazon.com/dp/B09V3KXJPB" },
        { url: "https://www.amazon.com/dp/B0BDJ279KF" },
      ]),
    }
  );

  const data = await response.json();
  console.log("Snapshot ID:", data.snapshot_id);
  ```
</CodeGroup>

## 第 5 步：验证交付

集合完成后，检查您的 S3 存储桶中是否有交付的文件：

```bash theme={null}
aws s3 ls s3://amazon-scraper-data/amazon/products/
```

您应该看到以快照 ID 命名的文件（例如，`s_m1a2b3c4d5e6f7g8h.json`）。

下载并检查它：

```bash theme={null}
aws s3 cp s3://amazon-scraper-data/amazon/products/s_m1a2b3c4d5e6f7g8h.json ./results.json
cat results.json | python -m json.tool | head -20
```

您也可以使用 [Monitor Delivery API](/api-reference/scrapers/management-apis/monitor-delivery) 验证交付状态。

## 故障排除

<Accordion title="文件没有出现在 S3 中？">
  * 验证 IAM 角色 ARN 和外部 ID 是否正确
  * 检查存储桶策略是否允许来自 Bright Data 账户的 `s3:PutObject`
  * 确保存储桶区域与您的配置相匹配
  * 在 Bright Data 仪表板的**日志**下查看交付状态
</Accordion>

<Accordion title="访问被拒绝错误？">
  验证 IAM 角色上的信任策略包含 Bright Data 的账户（`422310177405`），并且您的外部 ID 与在 [账户设置](https://www.bright.cn/cp/setting/customer_details)中找到的 Bright Data 客户 ID 相匹配。
</Accordion>

<Accordion title="交付的文件为空或缺少记录？">
  在 Bright Data 仪表板中检查集合状态。如果某些 URL 失败，交付的文件仅包含成功的结果。在单独的请求中重试失败的 URL。
</Accordion>

## 后续步骤

<CardGroup cols={2}>
  <Card title="设置 webhooks" icon="webhook" href="/datasets/scrapers/amazon/data-delivery/webhooks">
    在您的 HTTP 端点接收结果。
  </Card>

  <Card title="所有交付选项" icon="truck" href="/datasets/scrapers/scrapers-library/delivery-options">
    Snowflake、Azure、GCS、SFTP 等。
  </Card>
</CardGroup>
