

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用具有 S3 物件鎖定保留合規模式的 S3 批次操作
<a name="batch-ops-compliance-mode"></a>

下列範例以先前建立信任政策的範例，以及對物件設定 S3 批次作業和 S3 物件鎖定組態許可的範例為基礎。此範例會將保留模式設定為 `COMPLIANCE`，並將 `retain until date` 設定為 2025 年 1 月 1 日。此範例會建立以資訊清單儲存貯體中物件為目標的作業，並在您識別的報告儲存貯體中報告結果。

若要使用下列範例，請以您自己的資訊取代 {{`user input placeholders`}}。

## 使用 AWS CLI
<a name="batch-ops-cli-object-lock-compliance-example"></a>

下列 AWS CLI 範例示範如何使用批次操作，將 S3 物件鎖定保留合規模式套用至多個物件。

**Example — 跨多個物件設定 S3 物件鎖定保留合規模式**  

```
export AWS_PROFILE='{{aws-user}}'
export AWS_DEFAULT_REGION='{{us-west-2}}'
export ACCOUNT_ID={{123456789012}}
export ROLE_ARN='arn:aws:iam::{{123456789012}}:role/{{batch_operations-objectlock}}'

read -d '' {{OPERATION}} <<EOF
{
  "S3PutObjectRetention": {
    "Retention": {
      "RetainUntilDate":"{{2025-01-01T00:00:00}}",
      "Mode":"COMPLIANCE"
    }
  }
}
EOF

read -d '' {{MANIFEST}} <<EOF
{
  "Spec": {
    "Format": "S3BatchOperations_CSV_20180820",
    "Fields": [
      "Bucket",
      "Key"
    ]
  },
  "Location": {
    "ObjectArn": "arn:aws:s3:::{{{{amzn-s3-demo-manifest-bucket}}/compliance-objects-manifest.csv}}",
    "ETag": "{{Your-manifest-ETag}}"
  }
}
EOF

read -d '' {{REPORT}} <<EOF
{
  "Bucket": "arn:aws:s3:::{{ReportBucket}}",
  "Format": "Report_CSV_20180820",
  "Enabled": true,
  "Prefix": "{{{{amzn-s3-demo-completion-report-bucket}}/compliance-objects-batch-operations}}",
  "ReportScope": "AllTasks"
}
EOF

aws \
    s3control create-job \
    --account-id "${{{ACCOUNT_ID}}}" \
    --manifest "${{{MANIFEST}}//$'\n'}" \
    --operation "${{{OPERATION}}//$'\n'/}" \
    --report "${{{REPORT}}//$'\n'}" \
    --priority 10 \
    --role-arn "${{{ROLE_ARN}}}" \
    --client-request-token "$(uuidgen)" \
    --region "${{{AWS_DEFAULT_REGION}}}" \
    --description "{{Set compliance retain-until to 1 Jul 2030}}";
```

**Example — 將`COMPLIANCE`模式的`retain until date`延長到 2025 年 1 月 15 日**  
下列範例將 `COMPLIANCE` 模式的 `retain until date` 延長到 2025 年 1 月 15 日。  

```
export AWS_PROFILE='{{aws-user}}'
export AWS_DEFAULT_REGION='{{us-west-2}}'
export ACCOUNT_ID={{123456789012}}
export ROLE_ARN='arn:aws:iam::{{123456789012}}:role/{{batch_operations-objectlock}}'

read -d '' {{OPERATION}} <<EOF
{
  "S3PutObjectRetention": {
    "Retention": {
      "RetainUntilDate":"{{2025-01-15T00:00:00}}",
      "Mode":"COMPLIANCE"
    }
  }
}
EOF

read -d '' {{MANIFEST}} <<EOF
{
  "Spec": {
    "Format": "S3BatchOperations_CSV_20180820",
    "Fields": [
      "Bucket",
      "Key"
    ]
  },
  "Location": {
    "ObjectArn": "arn:aws:s3:::{{{{amzn-s3-demo-manifest-bucket}}/compliance-objects-manifest.csv}}",
    "ETag": "{{Your-manifest-ETag}}"
  }
}
EOF

read -d '' {{REPORT}} <<EOF
{
  "Bucket": "arn:aws:s3:::{{amzn-s3-demo-completion-report-bucket}}",
  "Format": "Report_CSV_20180820",
  "Enabled": true,
  "Prefix": "{{reports/compliance-objects-batch_operations}}",
  "ReportScope": "AllTasks"
}
EOF

aws \
    s3control create-job \
    --account-id "${{{ACCOUNT_ID}}}" \
    --manifest "${{{MANIFEST}}//$'\n'}" \
    --operation "${{{OPERATION}}//$'\n'/}" \
    --report "${{{REPORT}}//$'\n'}" \
    --priority 10 \
    --role-arn "${{{ROLE_ARN}}}" \
    --client-request-token "$(uuidgen)" \
    --region "${{{AWS_DEFAULT_REGION}}}" \
    --description "{{Extend compliance retention to 15 Jan 2025}}";
```

## 使用適用於 Java 的 AWS 開發套件
<a name="batch-ops-examples-java-object-lock-compliance"></a>

下列適用於 Java 的 AWS SDK 範例示範如何使用批次操作將 S3 物件鎖定保留合規模式套用至多個物件，包括將保留模式設定為具有保留至日期的合規，以及將合規模式延長為保留至日期。

如需如何使用批次操作搭配適用於 Java 的 AWS SDK 將 S3 物件鎖定保留合規模式套用至多個物件的範例，請參閱《*Amazon S3 API 參考*》中的[搭配使用 CreateJob 與 AWS SDK 或 CLI](https://docs.aws.amazon.com/AmazonS3/latest/API/s3-control_example_s3-control_CreateJob_section.html)。