

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

# 在 中使用 API 層級 (s3api) 命令 AWS CLI
<a name="cli-services-s3-apicommands"></a>

API 層級命令 (包含在 `s3api` 命令集中) 提供對 Amazon Simple Storage Service (Amazon S3) API 的直接存取，並啟用在高階 `s3` 命令中未公開的部分操作。這些命令等同於對服務功能提供 API 層級存取的其他 AWS 服務。如需這些 `s3` 命令的詳細資訊，請參閱 [在 中使用高階 (s3) 命令 AWS CLI](cli-services-s3-commands.md)

本主題提供範例，示範如何使用映射到 Amazon S3 API 的較低層級命令。此外，您可以在第 [AWS CLI 2 版參考指南](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html)的 `s3api`區段中找到每個 S3 API 命令的範例。

**Topics**
+ [先決條件](#cli-services-s3-apicommands-prereqs)
+ [套用自訂 ACL](#cli-services-s3-apicommands-acls)
+ [設定記錄政策](#cli-services-s3-apicommands-logpol)
+ [Resources](#cli-services-s3-apicommands-resources)

## 先決條件
<a name="cli-services-s3-apicommands-prereqs"></a>

若要執行 `s3api` 命令，您需要：
+ 安裝及設定 AWS CLI。如需詳細資訊，請參閱[安裝或更新至最新版本的 AWS CLI](getting-started-install.md)及[的身分驗證和存取憑證 AWS CLI](cli-chap-authentication.md)。
+ 您使用的設定檔必須具有許可，以允許範例執行 AWS 的操作。
+ 了解這些 Amazon S3 術語：
  + **儲存貯體** – 頂層 Amazon S3 資料夾。
  + **前綴** – 儲存貯體中的 Amazon S3 資料夾。
  + **物件** – 託管於 Amazon S3 儲存貯體中的任一個項目。

## 套用自訂 ACL
<a name="cli-services-s3-apicommands-acls"></a>

透過高階命令，您可使用 `--acl` 選項在 Amazon S3 物件上套用預先定義的存取控制清單 (ACL)。但不能使用該命令來設定整個儲存貯體的 ACL。不過，您可以使用 ```[put-bucket-acl](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-acl.html)` API 層級命令做到這一點。

下列範例顯示如何將完全控制權授予兩個 AWS 使用者 (*user1@example.com* 和 *user2@example.com*)，以及授予每個人讀取許可。「everyone」的識別符來自您當做參數傳遞的特殊 URI。

```
$ aws s3api put-bucket-acl --bucket {{amzn-s3-demo-bucket}} --grant-full-control 'emailaddress="{{user1@example.com}}",emailaddress="{{user2@example.com}}"' --grant-read 'uri="http://acs.amazonaws.com/groups/global/AllUsers"'
```

如需有關如何建構 ACL 的詳細資訊，請參閱《Amazon Simple Storage Service API 參考》**中的 [PUT 儲存貯體 acl](https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTacl.html)。CLI 中的 `s3api` ACL 命令 (如 `put-bucket-acl`) 使用相同的[速記參數表示法](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-shorthand.html)。

## 設定記錄政策
<a name="cli-services-s3-apicommands-logpol"></a>

API 命令 `put-bucket-logging` 設定儲存貯體記錄政策。

在下列範例中， AWS 使用者 *user@example.com* 被授予對日誌檔案的完全控制權，而且所有使用者都可以讀取這些檔案。請注意，授予 Amazon S3 記錄傳送系統 (由 URI 指定) 將日誌讀取和寫入至儲存貯體的必要許可時，也需要 `put-bucket-acl` 命令。

```
$ aws s3api put-bucket-acl --bucket {{amzn-s3-demo-bucket}} --grant-read-acp 'URI="http://acs.amazonaws.com/groups/s3/LogDelivery"' --grant-write 'URI="http://acs.amazonaws.com/groups/s3/LogDelivery"'
$ aws s3api put-bucket-logging --bucket {{amzn-s3-demo-bucket}} --bucket-logging-status file://logging.json
```

上一個命令中的 `logging.json` 檔案包含下列內容。

```
{
  "LoggingEnabled": {
    "TargetBucket": "amzn-s3-demo-bucket",
    "TargetPrefix": "amzn-s3-demo-bucketLogs/",
    "TargetGrants": [
      {
        "Grantee": {
          "Type": "AmazonCustomerByEmail",
          "EmailAddress": "{{user@example.com}}"
        },
        "Permission": "FULL_CONTROL"
      },
      {
        "Grantee": {
          "Type": "Group",
          "URI": "http://acs.amazonaws.com/groups/global/AllUsers"
        },
        "Permission": "READ"
      }
    ]
  }
}
```

## Resources
<a name="cli-services-s3-apicommands-resources"></a>

**AWS CLI 參考：**
+ [https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/index.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-acl.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-acl.html)
+ [https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-logging.html](https://docs.aws.amazon.com/cli/latest/reference/s3api/put-bucket-logging.html)

**服務參考：**
+ 《Amazon S3 使用者指南》**中的[使用 Amazon S3 儲存貯體](https://docs.aws.amazon.com//AmazonS3/latest/userguide/UsingBucket.html)。
+ 《Amazon S3 使用者指南》**中的[使用 Amazon S3 物件](https://docs.aws.amazon.com//AmazonS3/latest/userguide/UsingObjects.html)。
+ 《Amazon S3 使用者指南》**中的[使用前綴和分隔符號以階層方式列出金鑰](https://docs.aws.amazon.com//AmazonS3/latest/userguide/ListingKeysHierarchy.html)
+ 使用《Amazon[ S3 使用者指南》中的 適用於 .NET 的 AWS SDK （低階） 中止分段上傳至 S3 儲存貯](https://docs.aws.amazon.com//AmazonS3/latest/userguide/LLAbortMPUnet.html)體 *Amazon S3 *