オブジェクト・メタデータの更新
オブジェクトのカスタム・メタデータの更新
カスタム・メタデータは、任意のキー/値のペアです。 必要なカスタムまたは任意のメタデータを定義および更新できます。
サービス管理者ロールまたはコンテナのX-Container-Write ACLに指定されたロールを持つすべてのユーザーがこのタスクを実行できます。
サービスは、カスタム・メタデータ・キーを次のように変換します。
- アンダースコアがハイフンに変換されます。
- ハイフンの後の最初の文字が大文字になります。 他のすべての文字は小文字に変換されます。
- Javaライブラリでは、各キーに
X-Object-Meta-Customという接頭辞が自動的に付けられます。
| インタフェース | 資料 |
|---|---|
|
RESTful API |
「Oracle Cloud Infrastructure Object Storage Classicの標準ストレージ用のREST API」の「オブジェクト・メタデータの作成または更新」を参照してください。 |
|
Javaライブラリ |
「Oracle Cloud Infrastructure Object Storage ClassicのJava APIリファレンス」の |
|
ファイル転送マネージャAPI |
「Oracle Cloud Infrastructure Object Storage Classic用のJava APIリファレンスFile Transfer Manager」のclass: ObjectMetadataを参照してください。 |
|
ファイル転送マネージャCLI |
「Oracle Cloud Infrastructure Object Storage Classicのコマンドライン・リファレンス」の「オブジェクト・メタデータの設定」を参照してください。 |
オブジェクトのカスタム・メタデータは、POSTリクエストを送信することで削除することもできます。 オブジェクト・メタデータの削除を参照してください。
cURLコマンド構文
curl -v -X POST \
-H "X-Auth-Token: token" \
-H "X-Object-Meta-Name-1: value-1" \
-H "X-Object-Meta-Name-2: value-2" \
accountURL/containerName/objectName
tokenは、以前にOracle Cloud Infrastructure Object Storage Classicから取得した認証トークンです。 REST API使用時のアクセスの認証を参照してください。Nameとvalueは、更新されるメタデータ・ヘッダーと値です。追加または更新する複数のメタデータ・ヘッダーを指定できます。
注意:
カスタム・メタデータの名前と値が、「文字の制限」に記載されている入力制限に準拠していることを確認してください。accountURLの構文については、「Oracle Cloud Infrastructure Object Storage ClassicリソースのREST URLについて」を参照してください。containerNameは、カスタム・メタデータを更新するオブジェクトが含まれているコンテナの名前です。objectNameは、カスタム・メタデータを更新するオブジェクトの名前です。
注意:
Oracle Cloud Infrastructure Object Storage ClassicにREST APIリクエストを送信すると、コンテナ名、オブジェクト名、メタデータ値の非ASCII文字はすべてURLエンコードされている必要があります。 たとえば、my containerはmy%20containerのようにエンコードする必要があります。この%20は、空白文字のHTMLエンコーディングです。 同様に、my Über Containerはmy%20%C3%9Cber%20Containerのようにエンコードする必要があります。この%20は空白文字を表し、%C3%9CはÜ文字を表します。
HTTPレスポンス・コード
- 成功:
202 Accepted - 失敗: 「Oracle Cloud Infrastructure Object Storage Classicのエラー・コード・リファレンス」を参照してください
cURLコマンド例
- アカウント名:
acme - RESTエンドポイントURL :
https://acme.storage.oraclecloud.com/v1/Storage-acme - RESTエンドポイント(永続)URL :
https://storage-7b16fede61e1417ab83eb52e06f0e365.storage.oraclecloud.com/v1/Storage-7b16fede61e1417ab83eb52e06f0e365注意:
2017年11月以降に作成されたアカウントのREST Endpoint (Permanent)URLが表示されます。
- 「RESTエンドポイント」フィールドから取得したRESTエンドポイントURLを使用する方法:
curl -v -X POST \ -H "X-Auth-Token: AUTH_tkb4fdf39c92e9f62cca9b7c196f8b6e6b" \ -H "X-Object-Meta-Language: english" \ -H "X-Object-Meta-Country: US" \ https://acme.storage.oraclecloud.com/v1/Storage-acme/FirstContainer/myObject次に、このコマンドの出力例を示します。 前述のコマンドを使用すると、
X-Object-Meta-Languageメタデータ・ヘッダーとX-Object-Meta-Countryメタデータ・ヘッダーの値は、それぞれenglishとUSに更新されます。> POST /v1/Storage-acme/FirstContainer/myObject HTTP/1.1 > User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2 > Host: acme.storage.oraclecloud.com > Accept: */* > X-Auth-Token: AUTH_tkb4fdf39c92e9f62cca9b7c196f8b6e6b > X-Object-Meta-Language: english > X-Object-Meta-Country: US > < HTTP/1.1 202 Accepted < Date: Mon, 09 Mar 2015 11:46:34 GMT < Content-Length: 76 < Content-Type: text/html; charset=UTF-8 < X-Trans-Id: txd54813b92dcd46849b009-0054fd8819 < Cache-Control: no-cache < Pragma: no-cache < Content-Language: en < Accepted. The request is accepted for processing. - 「RESTエンドポイント(永続的)」フィールドから取得したサービス永続RESTエンドポイントURLの使用:
このcURLコマンドの例は、2017年11月以降に作成されたアカウントに適用されます。
curl -v -X POST \ -H "X-Auth-Token: AUTH_tkb4fdf39c92e9f62cca9b7c196f8b6e6b" \ -H "X-Object-Meta-Language: english" \ -H "X-Object-Meta-Country: US" \ https://storage-7b16fede61e1417ab83eb52e06f0e365.storage.oraclecloud.com/v1/Storage-7b16fede61e1417ab83eb52e06f0e36/FirstContainer/myObject次に、このコマンドの出力例を示します。 前述のコマンドを使用すると、
X-Object-Meta-Languageメタデータ・ヘッダーとX-Object-Meta-Countryメタデータ・ヘッダーの値は、それぞれenglishとUSに更新されます。> POST /v1/Storage-7b16fede61e1417ab83eb52e06f0e36/FirstContainer/myObject HTTP/1.1 > User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2 > Host: storage-7b16fede61e1417ab83eb52e06f0e36.storage.oraclecloud.com > Accept: */* > X-Auth-Token: AUTH_tkb4fdf39c92e9f62cca9b7c196f8b6e6b > X-Object-Meta-Language: english > X-Object-Meta-Country: US > < HTTP/1.1 202 Accepted < Date: Mon, 09 Mar 2015 11:46:34 GMT < Content-Length: 76 < Content-Type: text/html; charset=UTF-8 < X-Trans-Id: txd54813b92dcd46849b009-0054fd8819 < Cache-Control: no-cache < Pragma: no-cache < Content-Language: en < Accepted. The request is accepted for processing.
オブジェクト・メタデータの削除
オブジェクトのカスタム・メタデータをすべて削除するには、メタデータ・ヘッダーを指定しないでPOSTリクエストを送信します。 すべてのカスタム・メタデータが削除されます。 システム・メタデータは維持される点に注意してください。
特定のカスタム・メタデータを削除するには、POSTリクエストを送信して、維持または更新するメタデータ・ヘッダーとその値のみを指定します。 削除する必要のあるメタデータは、指定しないでください。 リクエストで指定したメタデータ・ヘッダーは、すべて更新されます。 リクエストで指定されていないヘッダーは削除されます。
cURLコマンド例
次のコマンド例は、オブジェクトmyObjectのすべてのカスタム・メタデータを削除する方法を示しています。
- アカウント名:
acme - RESTエンドポイントURL :
https://acme.storage.oraclecloud.com/v1/Storage-acme - RESTエンドポイント(永続)URL :
https://storage-7b16fede61e1417ab83eb52e06f0e365.storage.oraclecloud.com/v1/Storage-7b16fede61e1417ab83eb52e06f0e365注意:
2017年11月以降に作成されたアカウントのREST Endpoint (Permanent)URLが表示されます。
- 「RESTエンドポイント」フィールドから取得したRESTエンドポイントURLを使用する方法:
curl -v -X POST \ -H "X-Auth-Token: AUTH_tkb4fdf39c92e9f62cca9b7c196f8b6e6b" \ https://acme.storage.oraclecloud.com/v1/Storage-acme/FirstContainer/myObject次に、このコマンドの出力例を示します。
> POST /v1/Storage-acme/FirstContainer/myObject HTTP/1.1 > User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2 > Host: acme.storage.oraclecloud.com > Accept: */* > X-Auth-Token: AUTH_tkb4fdf39c92e9f62cca9b7c196f8b6e6b > < HTTP/1.1 202 Accepted < Date: Mon, 22 Dec 2016 11:46:34 GMT < Content-Length: 76 < Content-Type: text/html; charset=UTF-8 < X-Trans-Id: txd54813b92dcd46849b009-0054fd8819 < Cache-Control: no-cache < Pragma: no-cache < Content-Language: en < Accepted. The request is accepted for processing. - 「RESTエンドポイント(永続的)」フィールドから取得したサービス永続RESTエンドポイントURLの使用:
このcURLコマンドの例は、2017年11月以降に作成されたアカウントに適用されます。
curl -v -X POST \ -H "X-Auth-Token: AUTH_tkb4fdf39c92e9f62cca9b7c196f8b6e6b" \ https://storage-7b16fede61e1417ab83eb52e06f0e365.storage.oraclecloud.com/v1/Storage-7b16fede61e1417ab83eb52e06f0e365/FirstContainer/myObject次に、このコマンドの出力例を示します。
> POST /v1/Storage-7b16fede61e1417ab83eb52e06f0e365/FirstContainer/myObject HTTP/1.1 > User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2 > Host: storage-7b16fede61e1417ab83eb52e06f0e365.storage.oraclecloud.com > Accept: */* > X-Auth-Token: AUTH_tkb4fdf39c92e9f62cca9b7c196f8b6e6b > < HTTP/1.1 202 Accepted < Date: Mon, 22 Dec 2016 11:46:34 GMT < Content-Length: 76 < Content-Type: text/html; charset=UTF-8 < X-Trans-Id: txd54813b92dcd46849b009-0054fd8819 < Cache-Control: no-cache < Pragma: no-cache < Content-Language: en < Accepted. The request is accepted for processing.
オブジェクト自動削除のスケジューリング
X-Delete-AtまたはX-Delete-Afterヘッダーを使用すると、それぞれ未来の指定された時刻、または指定された期間の経過後にオブジェクトを削除するようスケジュールできます。
注意:
X-Delete-AtおよびX-Delete-Afterヘッダーを使用してArchiveコンテナのオブジェクトの自動削除をスケジューリングすることはできません。 (Oracle Cloud at Customerでは使用できません) サービス管理者ロールまたはコンテナのX-Container-Write ACLに指定されたロールを持つすべてのユーザーがこのタスクを実行できます。
オブジェクト作成時の自動削除をスケジューリングするには、X-Delete-AfterまたはX-Delete-AtヘッダーをPUTリクエストに含めます。 既存のオブジェクトに自動削除をスケジューリングするには、POSTリクエストを使用します。 Javaライブラリは、オブジェクト自動削除のスケジューリングをサポートしていません。
cURLコマンド構文
指定された期間後の既存のオブジェクト自動削除をスケジューリングするには:
curl -v -X POST \
-H "X-Auth-Token: token" \
-H "X-Delete-After: period" \
accountURL/containerName/objectName
未来の指定された時刻における既存のオブジェクト自動削除をスケジューリングするには:
curl -v -X POST \
-H "X-Auth-Token: token" \
-H "X-Delete-At: time" \
accountURL/containerName/objectName
tokenは、以前にOracle Cloud Infrastructure Object Storage Classicから取得した認証トークンです。 REST API使用時のアクセスの認証を参照してください。periodは、オブジェクトが削除されるまでの期間(秒)です。timeは、オブジェクトが削除される日付と時刻を表すUNIX Epochタイムスタンプです。 たとえば、1416218400は、2014年11月17日10:00:00 GMTを表します。 http://www.epochconverter.com/を参照してください。accountURLの構文については、「Oracle Cloud Infrastructure Object Storage ClassicリソースのREST URLについて」を参照してください。containerNameは、自動削除がスケジューリングされるオブジェクトが含まれるコンテナの名前です。objectNameは、自動削除がスケジューリングされるオブジェクトの名前です。
cURLコマンド例
- アカウント名:
acme - RESTエンドポイントURL :
https://acme.storage.oraclecloud.com/v1/Storage-acme - RESTエンドポイント(永続)URL :
https://storage-7b16fede61e1417ab83eb52e06f0e365.storage.oraclecloud.com/v1/Storage-7b16fede61e1417ab83eb52e06f0e365注意:
2017年11月以降に作成されたアカウントのREST Endpoint (Permanent)URLが表示されます。
サンプルのCloudアカウントのRESTエンドポイントURLは、以下のcURLコマンドの例で使用されています。 REST Endpoint (Permanent)URLを使用するには、https://acme.storage.oraclecloud.com/v1/Storage-acmeをhttps://storage-7b16fede61e1417ab83eb52e06f0e365.storage.oraclecloud.com/v1/Storage-7b16fede61e1417ab83eb52e06f0e365に置き換えます。
-
次のコマンドは、
myObjectという名前のオブジェクトを、86400秒後に自動的に削除するように設定します。curl -v -X POST \ -H "X-Auth-Token: AUTH_tkb4fdf39c92e9f62cca9b7c196f8b6e6b" \ -H "X-Delete-After: 86400" \ https://acme.storage.oraclecloud.com/v1/Storage-acme/myContainer/myObject次に、このコマンドの出力例を示します。
> POST /v1/Storage-acme/myContainer/myObject HTTP/1.1 > User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2 > Host: acme.storage.oraclecloud.com > Accept: */* > X-Auth-Token: AUTH_tkb4fdf39c92e9f62cca9b7c196f8b6e6b > X-Delete-After: 86400 > < HTTP/1.1 202 Accepted < Date: Mon, 23 Mar 2015 12:32:39 GMT < Content-Length: 76 < Content-Type: text/html; charset=UTF-8 < X-Trans-Id: txbb5a2f22164e47aa8116f-00551007e7 < Cache-Control: no-cache < Pragma: no-cache < Content-Language: en < The request is accepted for processing.次のコマンドは、
myObjectという名前のオブジェクトを、2014年11月30日の10:00:00 GMT (UNIX Epochタイムスタンプが1417341600)に自動的に削除するように設定します。curl -v -X POST \ -H "X-Auth-Token: AUTH_tkb4fdf39c92e9f62cca9b7c196f8b6e6b" \ -H "X-Delete-At: 1417341600" \ https://acme.storage.oraclecloud.com/v1/Storage-acme/myContainer/myObject次に、このコマンドの出力例を示します。
> POST /v1/Storage-acme/myContainer/myObject HTTP/1.1 > User-Agent: curl/7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.14.0.0 zlib/1.2.3 libidn/1.18 libssh2/1.4.2 > Host: acme.storage.oraclecloud.com > Accept: */* > X-Auth-Token: AUTH_tkb4fdf39c92e9f62cca9b7c196f8b6e6b > X-Delete-At: 1417341600 > < HTTP/1.1 202 Accepted < Date: Mon, 23 Mar 2015 12:32:39 GMT < Content-Length: 76 < Content-Type: text/html; charset=UTF-8 < X-Trans-Id: txbb5a2f22164e47aa8116f-00551007e7 < Cache-Control: no-cache < Pragma: no-cache < Content-Language: en < The request is accepted for processing.