すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:PutObjectACL

最終更新日:Apr 01, 2026

PutObjectACL 操作は、オブジェクトのアクセス制御リスト (ACL) を変更します。この操作を実行するには、バケットの所有者であり、オブジェクトに対する読み取りおよび書き込み権限を持っている必要があります。

バージョニング

デフォルトでは、PutObjectACL 操作はオブジェクトの現在のバージョンの ACL を設定します。特定のバージョンの ACL を設定するには、リクエストに versionId パラメーターを含めます。

  • 削除マーカーであるオブジェクトバージョンに versionId を指定すると、OSS は 405 Method Not Allowed エラーを返します。

  • versionId を指定せず、オブジェクトの最新バージョンが削除マーカーである場合、OSS は 404 NoSuchKey エラーを返します。

ACL

PutObjectACL 操作では、PUT リクエストの x-oss-object-acl リクエストヘッダーを使用して、オブジェクトの ACL を設定します。オブジェクトには、次のアクセス権限が利用可能です。

ACL

説明

private

オブジェクトは非公開リソースです。オブジェクトの所有者のみが読み取りおよび書き込み権限を持ちます。他のユーザーはオブジェクトにアクセスできません。

public-read

オブジェクトは公開読み取りリソースです。オブジェクトの所有者は読み取りおよび書き込み権限を持ちます。他のすべてのユーザーは読み取り専用権限を持ちます。

public-read-write

オブジェクトは公開読み書きリソースです。すべてのユーザーがオブジェクトに対する読み取りおよび書き込み権限を持ちます。

default

オブジェクトは、格納されているバケットの権限を継承します。

説明
  • オブジェクト ACL はバケット ACL よりも優先されます。たとえば、オブジェクトの ACL が公開読み書きであっても、非公開バケット内にある場合、すべてのユーザーがそのオブジェクトにアクセスできます。オブジェクトに特定の ACL がない場合、そのバケットの ACL を継承します。

  • 読み取り操作には、GetObject、HeadObject、および CopyObject と UploadPartCopy 操作でのソースオブジェクトの読み取りが含まれます。書き込み操作には、PutObject、PostObject、AppendObject、DeleteObject、DeleteMultipleObjects、CompleteMultipartUpload、および CopyObject 操作での送信先オブジェクトへの書き込みが含まれます。

  • 書き込みリクエストに x-oss-object-acl ヘッダーを含めることでもオブジェクトの ACL を設定できます。これは PutObjectACL 操作の呼び出しに相当します。たとえば、PutObject リクエストに x-oss-object-acl ヘッダーを含めることで、オブジェクトのアップロード時にその ACL を設定できます。

  • バケットでバケットレベルの保持ポリシー (BucketWorm) または オブジェクトレベルの保持ポリシー (ObjectWorm) が有効になっている場合、保持期間中のオブジェクトの ACL を設定または変更することはできません。

権限

デフォルトでは、Alibaba Cloud アカウント (root ユーザー) は完全な権限を持っています。Alibaba Cloud アカウント (root ユーザー) 配下の RAM ユーザーまたは RAM ロールは、デフォルトでは何の権限も持っていません。Alibaba Cloud アカウント (root ユーザー) またはアカウント管理者は、RAM ポリシーまたはバケットポリシーを通じて操作権限を付与する必要があります。

API

アクション

説明

PutObjectACL

oss:PutObjectAcl

バケット内のオブジェクトの ACL を変更します。

oss:PutObjectVersionAcl

指定されたバージョンのオブジェクトの ACL を変更します。

リクエスト構文

PUT /ObjectName?acl HTTP/1.1
x-oss-object-acl: Permission
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: GMT Date
Authorization: SignatureValue

リクエストヘッダー

ヘッダー

タイプ

必須

説明

x-oss-object-acl

String

はい

public-read

オブジェクトの ACL を指定します。

有効な値:

  • default:オブジェクトはバケットの ACL を継承します。

  • private:オブジェクトは非公開リソースです。オブジェクトの所有者と許可されたユーザーのみがオブジェクトに対する読み取りおよび書き込み権限を持ちます。他のユーザーはオブジェクトにアクセスできません。

  • public-read:オブジェクトは公開読み取りリソースです。オブジェクトの所有者と許可されたユーザーのみがオブジェクトに対する読み取りおよび書き込み権限を持ちます。他のユーザーはオブジェクトに対する読み取り専用権限を持ちます。この権限は注意して使用してください。

  • public-read-write:オブジェクトは公開読み書きリソースです。すべてのユーザーがオブジェクトに対する読み取りおよび書き込み権限を持ちます。この権限は注意して使用してください。

アクセス権限の詳細については、「オブジェクト ACL」をご参照ください。

この操作には、Host や Date などの共通リクエストヘッダーも含まれます。詳細については、「共通リクエストヘッダー」をご参照ください。

レスポンスヘッダー

DescribeRegions リクエストへの応答に含まれるすべてのヘッダーは、共通の応答ヘッダーです。詳細については、「共通の応答ヘッダー」をご参照ください。

  • バージョニングが無効なバケット内のオブジェクトの ACL を変更する

    リクエスト例

    PUT /test-object?acl HTTP/1.1
    x-oss-object-acl: public-read
    Host: oss-example.oss-cn-hangzhou.aliyuncs.com
    Date: Wed, 29 Apr 2015 05:21:12 GMT
    Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e

    レスポンス例

    HTTP/1.1 200 OK
    x-oss-request-id: 559CC9BDC755F95A64485981
    Date: Wed, 29 Apr 2015 05:21:12 GMT
    Content-Length: 0
    Connection: keep-alive
    Server: AliyunOSS
  • バージョニングが有効なバケット内のオブジェクトの ACL を変更する

    リクエスト例

    PUT /example?acl&versionId=CAEQMhiBgIC3rpSD0BYiIDBjYTk5MmIzN2JlNjQxZTFiNGIzM2E3OTliODA0**** HTTP/1.1
    x-oss-object-acl: public-read
    Host: oss-example.oss-cn-hangzhou.aliyuncs.com
    Date: Tue, 09 Apr 2019 06:30:11 GMT
    Authorization: OSS4-HMAC-SHA256 Credential=LTAI********************/20250417/cn-hangzhou/oss/aliyun_v4_request,Signature=a7c3554c729d71929e0b84489addee6b2e8d5cb48595adfc51868c299c0c218e

    レスポンス例

    HTTP/1.1 200 OK
    x-oss-version-id: CAEQMhiBgIC3rpSD0BYiIDBjYTk5MmIzN2JlNjQxZTFiNGIzM2E3OTliODA0****
    x-oss-request-id: 5CAC3BF3B7AEADE017000624
    Date: Tue, 09 Apr 2019 06:30:11 GMT
    Content-Length: 0
    Connection: keep-alive
    Server: AliyunOSS

SDK

以下のプログラミング言語の OSS SDK を使用して、この操作を呼び出すことができます:

ossutil CLI

ossutil での対応するコマンドは put-object-acl です。

エラーコード

エラーコード

HTTP ステータスコード

説明

AccessDenied

403

お客様がバケットの所有者でないか、オブジェクトに対する読み取りおよび書き込み権限がありません。

InvalidArgument

400

指定された x-oss-object-acl の値が無効です。

FileAlreadyExists

409

バケットで階層型名前空間が有効になっている場合、ディレクトリの ACL を変更しようとすると、このエラーが返されます。