edit-icon download-icon

PutBucketACL

最終更新日: Aug 01, 2018

Put Bucket ACL インターフェイスを使用すると、バケットのアクセス権限を変更できます。

現在バケットで使用できるアクセス権限は、公開読み書き、公開読み取り、非公開の 3 つです。Put Bucket ACL 操作を設定するには、Put リクエストで “x-oss-acl” ヘッダーを使用します。この操作を実行できるのはバケットの作成者だけです。操作が成功すると、200 が返されます。失敗すると、対応するエラーコードとプロンプトメッセージが返されます。

リクエスト構文

  1. PUT /?acl HTTP/1.1
  2. x-oss-acl: Permission
  3. Host: BucketName.oss-cn-hangzhou.aliyuncs.com
  4. Date: GMT Date
  5. Authorization: SignatureValue

詳細分析

  • バケットが既に存在しており、リクエスト送信者が所有しているが、リクエストの権限が既存の権限と異なっている場合は、バケットのコンテンツは変更されずに権限が更新されます。
  • Put Bucket リクエストの開始時にユーザー認証の情報が導入されていない場合は、403 Forbidden というメッセージが返されます。エラーコードは AccessDenied です。
  • リクエストに有効な “x-oss-acl” ヘッダーが含まれておらず、バケットが既に存在していてリクエスト送信者に属している場合、元のバケットの権限は変更されません。

リクエストの例:

  1. PUT /?acl HTTP/1.1
  2. x-oss-acl: public-read
  3. Host: oss-example.oss-cn-hangzhou.aliyuncs.com
  4. Date: Fri, 24 Feb 2012 03:21:12 GMT
  5. Authorization: OSS qn6qrrqxo2oawuk53otfjbyc:KU5h8YMUC78M30dXqf3JxrTZHiA=

戻り値の例:

  1. HTTP/1.1 200 OK
  2. x-oss-request-id: 534B371674E88A4D8906008B
  3. Date: Fri, 24 Feb 2012 03:21:12 GMT
  4. Content-Length: 0
  5. Connection: keep-alive
  6. Server: AliyunOSS

この設定の権限が存在しない場合は、400 Bad Request というメッセージが表示されます。

エラーの戻り値の例:

  1. HTTP/1.1 400 Bad Request
  2. x-oss-request-id: 56594298207FB304438516F9
  3. Date: Fri, 24 Feb 2012 03:55:00 GMT
  4. Content-Length: 309
  5. Content-Type: text/xml; charset=UTF-8
  6. Connection: keep-alive
  7. Server: AliyunOSS
  8. <?xml version="1.0" ?>
  9. <Error>
  10. <Code>InvalidArgument</Code>
  11. <Message>no such bucket access control exists</Message>
  12. <RequestId>56594298207FB304438516F9</RequestId>
  13. <HostId>leo.oss-test.aliyun-inc.com</HostId>
  14. <ArgumentName>x-oss-acl</ArgumentName>
  15. <ArgumentValue>error-acl</ArgumentValue>
  16. </Error>