コンテナ・メタデータの設定
コンテナACLの設定
コンテナのオブジェクトを読み書きする機能は、コンテナに割り当てられているアクセス制御リスト(ACL)によって管理されます。 このタスクは、サービス管理者ロールを持つすべてのユーザーが実行できます。
コンテナにはX-Container-ReadおよびX-Container-Writeという2つのACLがあります。
X-Container-Read ACLは、カンマ区切りのロールまたはリファラ指定のリストで構成されます。 X-Container-Write ACLは、カンマ区切りのロールのリストで構成されます。
- ロールには、組込みのロールとカスタム・ロールがあります。 カスタム・ロールは、「Infrastructure Classicコンソール」の「ユーザー」ページで定義されます。
- 別のサービス・インスタンスの一部としてプロビジョニングされたロールの場合、その書式は、
domainName.serviceName.roleNameです。 - カスタム・ロールの場合、その書式は、
domainName.roleNameです。
- 別のサービス・インスタンスの一部としてプロビジョニングされたロールの場合、その書式は、
- リファラ指定では、コンテナへの読取りアクセスを許可または拒否するホストを示します。 サーバーがコンテナのリクエストを受け取ると、
X-Container-ReadACLで指定されているリファラ指定を、リクエストのRefererヘッダーの値と比較し、アクセスを許可するか拒否するかを決定します。 リファラ指定の構文は、次のとおりです。.r:valuevalueは、コンテナへのアクセスを許可するホストを示します。 特定のホスト名(例:.r:www.example.com)、ドメイン(例:.r:.example.com)、またはすべてのホストを示すアスタリスク(.r:*)のいずれかになります。.r:*を指定すると、コンテナのオブジェクトの読取りが認証なしで公開される点に注意してください。valueの前のマイナス記号(-)は(例:)、.r:-temp.example.comvalueフィールドで指定されたホストのコンテナへのアクセスを拒否することを示します。- デフォルトでは、コンテナへの読取りアクセス権には、コンテナ内のオブジェクトをリストする権限は含まれません。 オブジェクトのリストも許可する場合は、ACLに
.rlistingsディレクティブを含めます(例:.r:*,.rlistings)。
従来のクラウド・アカウントのカスタム・ロールの作成用。 Oracle Cloudの管理および監視のカスタム・ロールの追加に関する項を参照してください。
Identity Cloud Serviceでのアカウントのカスタム・ロールの作成については、「Identity Cloud Serviceを使用したクラウド・アカウントに対するカスタム・ロールの作成」を参照してください。
| インタフェース | 資料 |
|---|---|
|
Webコンソール (Oracle Cloud at Customerでは使用できません) |
Webコンソールを使用したコンテナのACLの設定を参照してください。 |
|
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」のsetWriteAcl()を参照してください。 |
Webコンソールを使用したコンテナのACLの設定
(Oracle Cloud at Customerでは使用できません)- Oracle Cloud Infrastructure Object Storage Classicコンソールにサインインします。
コンテナのリストが表示されます。
- 読取り/書込みアクセス権を設定するコンテナを選択します。
- 「Container Information」を展開します。
コンテナの詳細が表示されます。
- 「Edit」をクリックします。
「Container Properties」の「Permissions」を探します。
- 「Add Role」をクリックします。
- 空のフィールドに目的の値を入力します。
デフォルトでは、次のACLが設定されます。
-
ユーザーに読取り/書込みアクセス権を与える
Storage_ReadWriteGroup。 -
ユーザーに読取り専用アクセス権を与える
Storage_ReadOnlyGroup。
-
- 「Save」をクリックします。
REST APIを使用したコンテナのACLの設定
cURLコマンド構文
curl -v -X POST \
-H "X-Auth-Token: token" \
–H "X-Container-Read: item[,item...]" \
–H "X-Container-Write: item[,item...]" accountURL/containerName
注意:
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レスポンス・コード
- 成功:
204 No Content - 失敗: 「Oracle Cloud Infrastructure Object Storage Classicのエラー・コード・リファレンス」を参照してください
cURLコマンド例
- IDCS GUID:
idcs-b75f75ed2528447fb59a798c1f08a38d(サンプルIDCSアカウント用) - アカウント名:
acme(サンプルIDCSまたは従来のアカウントの場合) - 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が表示されます。
FirstContainerというコンテナのACLを設定します。
- 事前定義されたロール
Storage_ReadWriteGroupまたはカスタム・ロールmyCustomRoleを持つすべてのユーザーに書込みアクセスを付与します。- 「RESTエンドポイント」フィールドから取得したRESTエンドポイントURLを使用する方法:
curl -v -X POST \ -H "X-Auth-Token: AUTH_tkb4fdf39c92e9f62cca9b7c196f8b6e6b" \ -H "X-Container-Write: myDomain.Storage.Storage_ReadWriteGroup,myDomain.myCustomRole" \ https://acme.storage.oraclecloud.com/v1/Storage-acme/FirstContainer次に、このコマンドの出力例を示します。> POST /v1/Storage-acme/FirstContainer 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-Container-Write:Storage-acme.Storage.Storage_ReadWriteGroup,Storage-acme.myCustomRole > < HTTP/1.1 204 No Content < Date: Fri, 06 Mar 2015 11:19:21 GMT < Content-Length: 0 < Content-Type: text/html; charset=UTF-8 < X-Trans-Id: txbf2c736d57494bf88e76a-0054f98d39 < Cache-Control: no-cache < Pragma: no-cache < Content-Language: en
- 「RESTエンドポイント」フィールドから取得したRESTエンドポイントURLを使用する方法:
- 「RESTエンドポイント(永続的)」フィールドから取得したサービス永続RESTエンドポイントURLの使用:
注意:
このcURLコマンドの例は、2017年11月以降に作成されたアカウントに適用されます。curl -v -X POST \ -H "X-Auth-Token: AUTH_tkb4fdf39c92e9f62cca9b7c196f8b6e6b" \ -H "X-Container-Write: myDomain.Storage.Storage_ReadWriteGroup,myDomain.myCustomRole" \ https://storage-7b16fede61e1417ab83eb52e06f0e365.storage.oraclecloud.com/v1/Storage-7b16fede61e1417ab83eb52e06f0e365/FirstContainer次に、このコマンドの出力例を示します。> POST /v1/Storage-7b16fede61e1417ab83eb52e06f0e365/FirstContainer 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-Container-Write:Storage-7b16fede61e1417ab83eb52e06f0e365.Storage.Storage_ReadWriteGroup,Storage-7b16fede61e1417ab83eb52e06f0e365.myCustomRole > < HTTP/1.1 204 No Content < Date: Fri, 06 Mar 2015 11:19:21 GMT < Content-Length: 0 < Content-Type: text/html; charset=UTF-8 < X-Trans-Id: txbf2c736d57494bf88e76a-0054f98d39 < Cache-Control: no-cache < Pragma: no-cache < Content-Language: en - すべてのホストに読取りアクセス権を付与し、コンテナ内のオブジェクトのリストアップを許可します。
- 「RESTエンドポイント」フィールドから取得したRESTエンドポイントURLを使用する方法:
curl -v -X POST \ -H "X-Auth-Token: AUTH_tkb4fdf39c92e9f62cca9b7c196f8b6e6b" \ -H "X-Container-Read: .r:*,.rlistings" \ https://acme.storage.oraclecloud.com/v1/Storage-acme/FirstContainer次に、このコマンドの出力例を示します。
> POST /v1/Storage-acme/FirstContainer 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-Container-Read: .r:*,.rlistings > < HTTP/1.1 204 No Content < Date: Fri, 06 Mar 2015 11:23:16 GMT < Content-Length: 0 < Content-Type: text/html; charset=UTF-8 < X-Trans-Id: tx9127a70f18144c17afce5-0054f98e24 < Cache-Control: no-cache < Pragma: no-cache < Content-Language: en 0 - 「RESTエンドポイント(永続的)」フィールドから取得したサービス永続RESTエンドポイントURLの使用:
注意:
このcURLコマンドの例は、2017年11月以降に作成されたアカウントに適用されます。curl -v -X POST \ -H "X-Auth-Token: AUTH_tkb4fdf39c92e9f62cca9b7c196f8b6e6b" \ -H "X-Container-Read: .r:*,.rlistings" \ https://storage-7b16fede61e1417ab83eb52e06f0e365.storage.oraclecloud.com/v1/Storage-7b16fede61e1417ab83eb52e06f0e365/FirstContainer次に、このコマンドの出力例を示します。
> POST /v1/Storage-7b16fede61e1417ab83eb52e06f0e365/FirstContainer 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-Container-Read: .r:*,.rlistings > < HTTP/1.1 204 No Content < Date: Fri, 06 Mar 2015 11:23:16 GMT < Content-Length: 0 < Content-Type: text/html; charset=UTF-8 < X-Trans-Id: tx9127a70f18144c17afce5-0054f98e24 < Cache-Control: no-cache < Pragma: no-cache < Content-Language: en 0
- 「RESTエンドポイント」フィールドから取得したRESTエンドポイントURLを使用する方法:
コンテナ割当て制限の設定
各コンテナに対して、コンテナが含むことができる最大バイト数(X-Container-Meta-Quota-Bytes)と、コンテナが含むことができる最大オブジェクト数(X-Container-Meta-Quota-Count)の割当て制限を設定できます。
このタスクは、サービス管理者ロールを持つすべてのユーザーが実行できます。
| インタフェース | 資料 |
|---|---|
|
RESTful API |
Oracle Cloud Infrastructure Object Storage Classicの標準ストレージ用のREST APIの「コンテナのメタデータの作成、更新、または削除」を参照してください。 |
|
ファイル転送マネージャCLI |
setQuotaBytes()in 「Oracle Cloud Infrastructure Object Storage Classicのコマンドライン・リファレンス」を参照してください。 |
cURLコマンド構文
curl -v -X POST \
-H "X-Auth-Token: token" \
-H "X-Container-Meta-Quota-Bytes: maxBytes" \
-H "X-Container-Meta-Quota-Count: maxObjects" accountURL/containerName
tokenは、以前にOracle Cloud Infrastructure Object Storage Classicから取得した認証トークンです。 REST API使用時のアクセスの認証を参照してください。maxBytesは、コンテナに格納可能なデータの最大バイト数です。maxObjectsは、コンテナに作成可能な最大オブジェクト数です。accountURLの構文については、「Oracle Cloud Infrastructure Object Storage ClassicリソースのREST URLについて」を参照してください。containerNameは、割当て制限を設定するコンテナの名前です。
注意:
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レスポンス・コード
- 成功:
204 No Content - 失敗: 「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-Container-Meta-Quota-Bytes: 10737418240" \ -H "X-Container-Meta-Quota-Count: 100" \ https://acme.storage.oraclecloud.com/v1/Storage-acme/FirstContainerこのコマンドは、
FirstContainerというコンテナに対して、10737418240バイト(10GB)と100個のオブジェクトの割当て制限を設定します。 次に、このコマンドの出力例を示します。> POST /v1/Storage-acme/FirstContainer 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-Container-Meta-Quota-Bytes: 10737418240 > X-Container-Meta-Quota-Count: 100 > < HTTP/1.1 204 No Content < Date: Fri, 06 Mar 2015 11:32:19 GMT < Content-Length: 0 < Content-Type: text/html; charset=UTF-8 < X-Trans-Id: txe8869b3edea348e5b49eb-0054f99043 < Cache-Control: no-cache < Pragma: no-cache < Content-Language: en - 「RESTエンドポイント(永続的)」フィールドから取得したサービス永続RESTエンドポイントURLの使用:
curl -v -X POST \ -H "X-Auth-Token: AUTH_tkb4fdf39c92e9f62cca9b7c196f8b6e6b" \ -H "X-Container-Meta-Quota-Bytes: 10737418240" \ -H "X-Container-Meta-Quota-Count: 100" \ https://storage-7b16fede61e1417ab83eb52e06f0e365.storage.oraclecloud.com/v1/Storage-7b16fede61e1417ab83eb52e06f0e365/FirstContainerこのコマンドは、
FirstContainerというコンテナに対して、10737418240バイト(10GB)と100個のオブジェクトの割当て制限を設定します。 次に、このコマンドの出力例を示します。> POST /v1/Storage-7b16fede61e1417ab83eb52e06f0e365/FirstContainer 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 > X-Container-Meta-Quota-Bytes: 10737418240 > X-Container-Meta-Quota-Count: 100 > < HTTP/1.1 204 No Content < Date: Fri, 06 Mar 2015 11:32:19 GMT < Content-Length: 0 < Content-Type: text/html; charset=UTF-8 < X-Trans-Id: txe8869b3edea348e5b49eb-0054f99043 < Cache-Control: no-cache < Pragma: no-cache < Content-Language: en
コンテナのカスタム・メタデータの設定
カスタム・メタデータは、コンテナに関連付けられている任意のキー/値のペアです。 必要なカスタムまたは任意のメタデータを作成できます。
このタスクは、サービス管理者ロールを持つすべてのユーザーが実行できます。
| インタフェース | 資料 |
|---|---|
|
Webコンソール (Oracle Cloud at Customerでは使用できません) |
Webコンソールを使用したカスタム・メタデータの設定を参照してください。 |
|
RESTful API |
Oracle Cloud Infrastructure Object Storage Classicの標準ストレージ用のREST APIの「コンテナのメタデータの作成、更新、または削除」を参照してください。 |
|
Javaライブラリ |
Oracle Cloud Infrastructure Object Storage ClassicのJava APIリファレンスの |
|
ファイル転送マネージャCLI |
「Oracle Cloud Infrastructure Object Storage Classicのコマンドライン・リファレンス」のsetCustomMetadata()を参照してください。 |
Webコンソールを使用したカスタム・メタデータの設定
(Oracle Cloud at Customerでは使用できません)- Oracle Cloud Infrastructure Object Storage Classicコンソールにサインインします。
- カスタム・メタデータを設定するコンテナを選択します。
- 「Container Information」を展開します。
コンテナの詳細が表示されます。
- 「Edit」をクリックします。
「Custom Metadata」フィールドを探します。
- 「Add Metadata」をクリックします。
- 「Add Metadata」の下のフィールドにメタデータ名および値を入力します。
注意:
カスタム・メタデータの名前と値が、「文字の制限」に記載されている入力制限に準拠していることを確認してください。 - 「Save」をクリックします。
メタデータ名および値が「Container Information」ペインに表示されます。
REST APIを使用したカスタム・メタデータの設定
cURLコマンド構文
curl -v -X POST \
-H "X-Auth-Token: token" \
-H "X-Container-Meta-Name: value" \
accountURL/containerName
tokenは、以前にOracle Cloud Infrastructure Object Storage Classicから取得した認証トークンです。 REST API使用時のアクセスの認証を参照してください。Nameとvalueは、作成されるメタデータの名前と値です。注意:
カスタム・メタデータの名前と値が、「文字の制限」に記載されている入力制限に準拠していることを確認してください。accountURLの構文については、「Oracle Cloud Infrastructure Object Storage ClassicリソースのREST URLについて」を参照してください。containerNameは、カスタム・メタデータが作成されるコンテナの名前です。
注意:
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レスポンス・コード
- 成功:
204 No Content - 失敗: 「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-Container-Meta-Category: Books" \ https://acme.storage.oraclecloud.com/v1/Storage-acme/FirstContainer次に、このコマンドの出力例を示します。
> POST /v1/Storage-acme/FirstContainer 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-Container-Meta-Category: Books > < HTTP/1.1 204 No Content < Date: Fri, 06 Mar 2015 11:35:35 GMT < Content-Length: 0 < Content-Type: text/html; charset=UTF-8 < X-Trans-Id: tx3e77b77de39f4097a5a49-0054f99107 < Cache-Control: no-cache < Pragma: no-cache < Content-Language: en - 「RESTエンドポイント(永続的)」フィールドから取得したサービス永続RESTエンドポイントURLの使用:
注意:
このcURLコマンドの例は、2017年11月以降に作成されたアカウントに適用されます。curl -v -X POST \ -H "X-Auth-Token: AUTH_tkb4fdf39c92e9f62cca9b7c196f8b6e6b" \ -H "X-Container-Meta-Category: Books" \ https://storage-7b16fede61e1417ab83eb52e06f0e365.storage.oraclecloud.com/v1/Storage-7b16fede61e1417ab83eb52e06f0e365/FirstContainer次に、このコマンドの出力例を示します。
> POST /v1/Storage-7b16fede61e1417ab83eb52e06f0e365/FirstContainer 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 > X-Container-Meta-Category: Books > < HTTP/1.1 204 No Content < Date: Fri, 06 Mar 2015 11:35:35 GMT < Content-Length: 0 < Content-Type: text/html; charset=UTF-8 < X-Trans-Id: tx3e77b77de39f4097a5a49-0054f99107 < Cache-Control: no-cache < Pragma: no-cache < Content-Language: en
カスタム・コンテナ・メタデータの取得の詳細は、「コンテナ・メタデータの取得」を参照してください。
カスタム・コンテナ・メタデータの削除の詳細は、「コンテナ・メタデータの削除」を参照してください。
コンテナでのCORSの有効化
CORS (Cross-Origin Resource Sharing)を使用すると、ブラウザベースのプログラム(JavaScriptなど)が別のドメインのリソースにアクセスできます。 これにより、WebアプリケーションはOracle Cloud Infrastructure Object Storage Classicにアクセスし、ブラウザが他のドメインのリソースへのアクセスを防止するために使用するSame-Originポリシーを克服することができます。
コンテナ内のオブジェクトを変更できないようにする
コンテナのWORM (Write-Once-Read-Many)ポリシーを設定して、コンテナ内のオブジェクトを変更したり削除したりすることを防ぐには、コンテナ内のオブジェクトを不変にできます。 コンテナ・レベルのWORMポリシーは、オブジェクトがアップロード中に独自のオブジェクトレベルのWORMポリシー・セットを持っていない限り、コンテナにアップロードされるすべてのオブジェクトに適用されます。
コンテナのWORMポリシーを設定したら、それを変更することはできません。 WORMポリシーが期限切れになると、コンテナ内のオブジェクトは削除できますが、オブジェクトまたはオブジェクトのメタデータは変更できません。 特定のオブジェクトのWORMポリシーを設定するには、「オブジェクトを不変にする」を参照してください。
コンテナのWORMポリシー・ヘッダーX-Worm-Expiration-Daysを設定するには、Service Administratorロールが必要です。
REST APIを使用してコンテナのメタデータを設定する方法については、Oracle Cloud Infrastructure Object Storage Classicの標準ストレージ用のREST APIの「コンテナ・メタデータの作成、更新、または削除」を参照してください。
cURLコマンド構文
空のコンテナのWORMポリシーを設定するには:
curl -v -X POST \
-H "X-Auth-Token: token" \
-H "X-Worm-Expiration-Days: period" \
accountURL/containerName
コンテナの作成中にWORMポリシーを設定するには:
curl -v -X PUT \
-H "X-Auth-Token: token" \
-H "X-Worm-Expiration-Days: period" \
accountURL/containerName
tokenは、以前にOracle Cloud Infrastructure Object Storage Classicから取得した認証トークンです。 REST API使用時のアクセスの認証を参照してください。periodは、WORMポリシーがコンテナに設定されている期間(日数)です。accountURLの構文については、「Oracle Cloud Infrastructure Object Storage ClassicリソースのREST URLについて」を参照してください。containerNameは、WORMポリシーを設定する必要があるコンテナの名前です。
注意:
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レスポンス・コード
- 成功:
-
WORMポリシーでコンテナを更新するとき:
204 No Content -
WORMポリシーを使用してコンテナを作成するとき:
201 Created
-
- 失敗: 「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が表示されます。
サンプルの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に置き換えます。
-
このコマンドは、コンテナ
FirstContainerの4日のWORMポリシーを設定します。curl -v -X POST \ -H "X-Auth-Token: AUTH_tkb4fdf39c92e9f62cca9b7c196f8b6e6b" \ -H "X-Worm-Expiration-Days: 4" \ https://acme.storage.oraclecloud.com/v1/Storage-acme/FirstContainer次に、このコマンドの出力例を示します。
> POST /v1/Storage-acme/FirstContainer 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-Worm-Expiration-Days: 4 > X-Auth-Token: AUTH_tkb4fdf39c92e9f62cca9b7c196f8b6e6b > < HTTP/1.1 204 No Content < Date: Tue, 06 Dec 2016 11:32:19 GMT < Content-Type: text/html; charset=UTF-8 < X-Trans-Id: txe8869b3edea348e5b49eb-0054f99043 < Cache-Control: no-cache < Pragma: no-cache < Content-Language: en
-
このコマンドは、コンテナ
SecondContainerを作成し、2日のWORMポリシーを設定します。curl -v -X PUT \ -H "X-Auth-Token: AUTH_tkb4fdf39c92e9f62cca9b7c196f8b6e6b" \ -H "X-Worm-Expiration-Days: 2" \ https://acme.storage.oraclecloud.com/v1/Storage-acme/SecondContainer次に、このコマンドの出力例を示します。
> PUT /v1/Storage-acme/SecondContainer 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-Worm-Expiration-Days: 2 > X-Auth-Token: AUTH_tkb4fdf39c92e9f62cca9b7c196f8b6e6b > < HTTP/1.1 201 Created < Date: Tue, 06 Dec 2016 11:36:24 GMT < Content-Type: text/html; charset=UTF-8 < X-Trans-Id: txe8869b3edea348e5b49eb-0054f99078 < Cache-Control: no-cache < Pragma: no-cache < Content-Language: en
-
このコマンドは、すでに
4日のWORMポリシーが設定されているコンテナFirstContainer内のオブジェクトObjectAのヘッダー値を取得します。curl -v -s -X HEAD \ -H "X-Auth-Token: AUTH_tkb4fdf39c92e9f62cca9b7c196f8b6e6b" \ https://acme.storage.oraclecloud.com/v1/Storage-acme/FirstContainer/ObjectAこのコマンドの出力の次の例では、オブジェクト・ヘッダー
X-Worm-Expiration-Atは、コンテナに設定されているWORMポリシーのEpoch有効期限を示しています。> HEAD /v1/Storage-acme/FirstContainer/ObjectA 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 200 OK < Date: Tue, 06 Dec 2016 11:37:09 GMT < X-Worm-Expiration-At: 1481366700 < Content-Type: text/html; charset=UTF-8 < X-Timestamp: 1481024229 < X-Trans-Id: txe8869b3edea348e5b49eb-005417894 < Cache-Control: no-cache < Pragma: no-cache < Content-Language: en
ここで、Epoch有効期限
1481366700は、オブジェクトがアップロードされた日時Tue, 06 Dec 2016 11:45:00 GMTから4日分の日付Sat, 10 Dec 2016 11:45:00 GMTに対応する。 http://epochconverter.comを参照してください。