オブジェクトにタグを追加、またはオブジェクトに追加されたタグを更新します。 オブジェクトに追加された各タグは、キーと値のペアです。
使用方法
1 つのオブジェクトに最大 10 個のタグを追加できます。オブジェクトに追加されるタグには、一意のタグキーが必要です。
タグキーの長さは最大 128 文字です。タグ値の長さは最大 256 文字です。
タグキーとタグ値は大文字と小文字が区別されます。
タグのキーと値には、文字、数字、スペース、および次の特殊文字を含めることができます。
+ - = . _ : /
HTTP ヘッダーのタグに文字が含まれている場合は、タグのキーと値に対して URL エンコードを実行する必要があります。
オブジェクトのタグを変更しても、オブジェクトの Last-Modified パラメーターは更新されません。
詳細については、「オブジェクトタグの設定」をご参照ください。
バージョン管理
デフォルトでは、PutObjectTagging を呼び出してオブジェクトにタグを追加、またはオブジェクトに設定されているタグを更新すると、タグはオブジェクトの現在のバージョンに追加されるか、現在のバージョンに設定されているタグが更新されます。リクエストで versionId パラメーターを指定して、オブジェクトの指定されたバージョンにタグを追加したり、指定されたバージョンのオブジェクトに設定されているタグを更新したりできます。指定されたバージョンが削除マーカーの場合、OSS は 404 Not Found を返します。
リクエスト構文
PUT /objectname?tagging
Content-Length: 114
Host: BucketName.oss-cn-hangzhou.aliyuncs.com
Date: Mon, 18 Mar 2019 08:25:17 GMT
Authorization: SignatureValue
<Tagging>
<TagSet>
<Tag>
<Key>Key</Key>
<Value>Value</Value>
</Tag>
</TagSet>
</Tagging>
リクエスト要素
要素 | タイプ | 必須 | 例 | 説明 |
Tagging | コンテナー | はい | 該当なし | 最上位のコンテナー。 子ノード: TagSet |
TagSet | コンテナー | はい | 該当なし | タグ。 親ノード: Tagging 子ノード: Tag |
Tag | コンテナー | いいえ | 該当なし | タグ。 親ノード: TagSet 子ノード: Key と Value |
Key | 文字列 | いいえ | a | タグのキー。 親ノード: Tag 子ノード: なし |
Value | 文字列 | いいえ | 1 | タグの値。 親ノード: Tag 子ノード: なし |
この操作には、共通のリクエストヘッダーも含まれます。詳細については、「共通の HTTP ヘッダー」をご参照ください。
例
バージョン管理されていないバケット内のオブジェクトにタグを追加する
この例では、objectname という名前のオブジェクトが、bucketname という名前のバージョン管理されていないバケットに格納されています。PutObjectTagging リクエストが送信され、{a:1} および {b:2} タグが objectname という名前のオブジェクトに追加されます。2 つのタグがオブジェクトに追加されると、200 (OK) が返されます。
リクエストの例
PUT /objectname?tagging Content-Length: 114 Host: BucketName.oss-cn-hangzhou.aliyuncs.com Date: Mon, 18 Mar 2019 08:25:17 GMT Authorization: OSS qn6q**************:77Dv**************** <Tagging> <TagSet> <Tag> <Key>a</Key> <Value>1</Value> </Tag> <Tag> <Key>b</Key> <Value>2</Value> </Tag> </TagSet> </Tagging>
レスポンスの例
200 (OK) content-length: 0 server: AliyunOSS connection: keep-alive x-oss-request-id: 5C8F55ED461FB4A64C00**** date: Mon, 18 Mar 2019 08:25:17 GMT
バージョン管理が有効なバケット内のオブジェクトにタグを追加する
この例では、objectname という名前のオブジェクトが、bucketname という名前のバージョン管理されたバケットに格納されています。PutObjectTagging リクエストが送信され、{age:18} タグが objectname の指定されたバージョンに追加されます。タグがオブジェクトに追加されると、200 (OK) が返されます。
リクエストの例
PUT /objectname?tagging&versionId=CAEQExiBgID.jImWlxciIDQ2ZjgwODIyNDk5MTRhNzBiYmQwYTZkMTYzZjM0**** Content-Length: 90 Host: BucketName.oss-cn-hangzhou.aliyuncs.com Date: Wed, 24 Jun 2020 08:58:15 GMT Authorization: OSS qn6q**************:77Dv**************** <Tagging> <TagSet> <Tag> <Key>age</Key> <Value>18</Value> </Tag> </TagSet> </Tagging>
レスポンスの例
200 (OK) content-length: 0 server: AliyunOSS connection: keep-alive x-oss-request-id: 5EF315A7FBD3EC3232B4**** date: Wed, 24 Jun 2020 08:58:15 GMT x-oss-version-id: CAEQExiBgID.jImWlxciIDQ2ZjgwODIyNDk5MTRhNzBiYmQwYTZkMTYzZjM0****
SDK
次のプログラミング言語の OSS SDK を使用して、PutObjectTagging 操作を呼び出すことができます。
ossutil
PutObjectTagging 操作に対応する ossutil コマンドについては、「put-object-tagging」をご参照ください。
エラーコード
エラーコード | HTTP ステータスコード | 説明 |
FileAlreadyExists | 409 | タグを設定または更新しようとしているオブジェクトは、階層型名前空間機能が有効になっているバケット内のディレクトリです。 |