機械翻訳について

コンテナ・メタデータの設定

コンテナ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-Read ACLで指定されているリファラ指定を、リクエストのRefererヘッダーの値と比較し、アクセスを許可するか拒否するかを決定します。 リファラ指定の構文は、次のとおりです。.r:value
    • valueは、コンテナへのアクセスを許可するホストを示します。 特定のホスト名(例: .r:www.example.com)、ドメイン(例: .r:.example.com)、またはすべてのホストを示すアスタリスク(.r:*)のいずれかになります。 .r:*を指定すると、コンテナのオブジェクトの読取りが認証なしで公開される点に注意してください。
    • valueの前のマイナス記号(-)は(例:.r:-temp.example.com)、valueフィールドで指定されたホストのコンテナへのアクセスを拒否することを示します。
    • デフォルトでは、コンテナへの読取りアクセス権には、コンテナ内のオブジェクトをリストする権限は含まれません。 オブジェクトのリストも許可する場合は、ACLに.rlistingsディレクティブを含めます(例: .r:*,.rlistings)。

従来のクラウド・アカウントのカスタム・ロールの作成用。 Oracle Cloudの管理および監視カスタム・ロールの追加に関する項を参照してください。

Identity Cloud Serviceでのアカウントのカスタム・ロールの作成については、「Identity Cloud Serviceを使用したクラウド・アカウントに対するカスタム・ロールの作成」を参照してください。

コンテナのACLを設定するには、次のインタフェースを使用します。
インタフェース 資料

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リファレンスsetContainerAclを参照してください。

ファイル転送マネージャAPI

Oracle Cloud Infrastructure Object Storage Classic用Java APIリファレンスFile Transfer Manager」setWriteAcl()を参照してください。

Webコンソールを使用したコンテナのACLの設定

(Oracle Cloud at Customerでは使用できません)
  1. Oracle Cloud Infrastructure Object Storage Classicコンソールにサインインします。

    コンテナのリストが表示されます。

  2. 読取り/書込みアクセス権を設定するコンテナを選択します。
  3. 「Container Information」を展開します。

    コンテナの詳細が表示されます。

  4. 「Edit」をクリックします。

    「Container Properties」「Permissions」を探します。

  5. 「Add Role」をクリックします。
  6. 空のフィールドに目的の値を入力します。
    デフォルトでは、次のACLが設定されます。
    • ユーザーに読取り/書込みアクセス権を与えるStorage_ReadWriteGroup

    • ユーザーに読取り専用アクセス権を与えるStorage_ReadOnlyGroup

  7. 「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 containermy%20containerのようにエンコードする必要があります。この%20は、空白文字のHTMLエンコーディングです。 同様に、my Über Containermy%20%C3%9Cber%20Containerのようにエンコードする必要があります。この%20は空白文字を表し、%C3%9CÜ文字を表します。

HTTPレスポンス・コード

cURLコマンド例

次の詳細を含むサンプルCloudアカウント:
  • 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の使用:

    注意:

    この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

コンテナ割当て制限の設定

各コンテナに対して、コンテナが含むことができる最大バイト数(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

注意:

Oracle Cloud Infrastructure Object Storage ClassicにREST APIリクエストを送信すると、コンテナ名、オブジェクト名、メタデータ値の非ASCII文字はすべてURLエンコードされている必要があります。 たとえば、my containermy%20containerのようにエンコードする必要があります。この%20は、空白文字のHTMLエンコーディングです。 同様に、my Über Containermy%20%C3%9Cber%20Containerのようにエンコードする必要があります。この%20は空白文字を表し、%C3%9CÜ文字を表します。

HTTPレスポンス・コード

コンテナ割当て制限の取得の詳細は、「コンテナ・メタデータの取得」を参照してください。

cURLコマンド例

次の詳細を含むサンプルCloudアカウント:
  • アカウント名: 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リファレンスupdateContainerMetadataを参照してください。

ファイル転送マネージャCLI

Oracle Cloud Infrastructure Object Storage Classicのコマンドライン・リファレンス」setCustomMetadata()を参照してください。

Webコンソールを使用したカスタム・メタデータの設定

(Oracle Cloud at Customerでは使用できません)
  1. Oracle Cloud Infrastructure Object Storage Classicコンソールにサインインします。
  2. カスタム・メタデータを設定するコンテナを選択します。
  3. 「Container Information」を展開します。

    コンテナの詳細が表示されます。

  4. 「Edit」をクリックします。

    「Custom Metadata」フィールドを探します。

  5. 「Add Metadata」をクリックします。
  6. 「Add Metadata」の下のフィールドにメタデータ名および値を入力します。

    注意:

    カスタム・メタデータの名前と値が、「文字の制限」に記載されている入力制限に準拠していることを確認してください。
  7. 「Save」をクリックします。

    メタデータ名および値が「Container Information」ペインに表示されます。

REST APIを使用したカスタム・メタデータの設定

cURLコマンド構文

curl -v -X POST \
     -H "X-Auth-Token: token" \
     -H "X-Container-Meta-Name: value" \
     accountURL/containerName

注意:

Oracle Cloud Infrastructure Object Storage ClassicにREST APIリクエストを送信すると、コンテナ名、オブジェクト名、メタデータ値の非ASCII文字はすべてURLエンコードされている必要があります。 たとえば、my containermy%20containerのようにエンコードする必要があります。この%20は、空白文字のHTMLエンコーディングです。 同様に、my Über Containermy%20%C3%9Cber%20Containerのようにエンコードする必要があります。この%20は空白文字を表し、%C3%9CÜ文字を表します。

HTTPレスポンス・コード

cURLコマンド例

次の詳細を含むサンプルCloudアカウント:
  • アカウント名: 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ポリシーを克服することができます。

コンテナへのCORSアクセスを有効にするには、次のステップを実行します。
  1. X-Container-Meta-Access-Control-Allow-Originメタデータ・ヘッダーを設定することによって、リクエストが許可されるオリジンを指定します。

    cURLコマンド構文

    curl -i -XPOST \
         -H "X-Auth-Token: token" \
         -H "X-Container-Meta-Access-Control-Allow-Origin: origins" \
         accountURL/containerName
    
    • tokenは、以前にOracle Cloud Infrastructure Object Storage Classicから取得した認証トークンです。 REST API使用時のアクセスの認証を参照してください
    • originsは、コンテナへのCORSリクエストを許可するオリジンのスペース区切りのリストです。
    • containerNameは、カスタム・メタデータが作成されるコンテナの名前です。

    HTTPレスポンス・コード

    次の詳細を含むサンプルCloudアカウント:
    • アカウント名: 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-acmehttps://storage-7b16fede61e1417ab83eb52e06f0e365.storage.oraclecloud.com/v1/Storage-7b16fede61e1417ab83eb52e06f0e365に置き換えます。

    cURLコマンド例

    次の例は、2つのオリジン(http://acme-admin.example.comおよびhttp://acme-app.example.com)からmyContainerというコンテナへのCORSリクエストを許可する方法を示しています。

    curl -i -XPOST \
         -H "X-Auth-Token: AUTH_tkb4fdf39c92e9f62cca9b7c196f8b6e6b" \
         -H "X-Container-Meta-Access-Control-Allow-Origin: http://acme-admin.example.com/ http://acme-app.example.com/" \
         https://acme.storage.oraclecloud.com/v1/Storage-acme/myContainer
    

    注意:

    任意のドメインからのコンテナへのアクセスを許可するには、X-Container-Meta-Access-Control-Allow-Originヘッダー値に「*」を設定します。

    次に、このコマンドの出力例を示します。

    < HTTP/1.1 204 No Content
    < X-Trans-Id: tx3e77b77de39f4097a5a49-0054f99107
    < Date: Fri, 06 Mar 2015 11:35:35 GMT
    < Connection: keep-alive
    < X-Last-Modified-Timestamp: 1469879583.18732
    < Content-Type: text/html; charset=UTF-8
    
  2. (オプション) X-Container-Meta-Access-Control-Max-Ageヘッダーを設定することによって、オリジンがOPTIONSリクエストの結果を保持できる期間を設定します。 通常、ブラウザはOPTIONSリクエストを最初に送信して、オリジンがリクエストの送信を許可されているかどうかをチェックします。

    cURLコマンド構文

    curl -i -XPOST \
         -H "X-Auth-Token: token" \
         -H "X-Container-Meta-Access-Control-Max-Age: maxAge" \
         accountURL/containerName
    
    • maxAgeは、OPTIONSリクエストの結果が有効である必要がある時間(秒単位)です。

    HTTPレスポンス・コード

    cURLコマンド例

    curl -i -XPOST \
         -H "X-Auth-Token: AUTH_tkb4fdf39c92e9f62cca9b7c196f8b6e6b" \
         -H "X-Container-Meta-Access-Control-Max-Age: 10000" \
         https://acme.storage.oraclecloud.com/v1/Storage-acme/myContainer
    

    次に、このコマンドの出力例を示します。

    < HTTP/1.1 204 No Content
    < X-Trans-Id: txd0af08f8298140c599348-00579c95bdga
    < Date: Fri, 06 Mar 2015 11:35:36 GMT
    < Connection: keep-alive
    < X-Last-Modified-Timestamp: 1469879741.41535
    < Content-Type: text/html; charset=UTF-8
    
  3. (オプション) X-Container-Meta-Access-Control-Expose-Headersメタデータ・ヘッダーを設定することによって、サービスがこのコンテナに対するCORSリクエストへのレスポンスで返す必要があるレスポンス・ヘッダーを指定します。 このヘッダーを明示的に設定しない場合、CORSリクエストへのレスポンスでは、コンテナの標準メタデータおよびコンテナに設定されているCORSメタデータ・ヘッダーが返されます。 コンテナの標準メタデータのリストを表示するには、コンテナのメタデータの取得を参照してください。

    cURLコマンド構文

    curl -i -XPOST \
         -H "X-Auth-Token: token" \
         -H "X-Container-Meta-Access-Control-Expose-Headers: headers" \
         accountURL/containerName
    
    • headersは、サービスがコンテナに対するCORSリクエストへのレスポンスで返す必要があるヘッダーのスペース区切りのリストです。

    HTTPレスポンス・コード

    cURLコマンド例

    次の例は、myContainerというコンテナに対するCORSリクエストへのレスポンスで2つのヘッダー(X-Container-Object-CountおよびX-Container-Bytes-Used)を返すようにサービスをセットアップする方法を示しています。

    curl -i -XPOST \
         -H "X-Auth-Token: AUTH_tkb4fdf39c92e9f62cca9b7c196f8b6e6b" \
         -H "X-Container-Meta-Access-Control-Expose-Headers: X-Container-Object-Count X-Container-Bytes-Used" \
         https://acme.storage.oraclecloud.com/v1/Storage-acme/myContainer
    

    次に、このコマンドの出力例を示します。

    < HTTP/1.1 204 No Content
    < X-Trans-Id: tx3e708ed6834d4ba4bf1cd-00579c95bdga
    < Date: Fri, 06 Mar 2015 11:35:37 GMT
    < Connection: keep-alive
    < X-Last-Modified-Timestamp: 1469879793.38545
    < Content-Type: text/html; charset=UTF-8
    
  4. CORSアクセスを検証するには、次の手順を実行します。
    1. OPTIONSリクエストを送信して、オリジンからのリクエストが許可されるかどうかを確認し、許可されているメソッドのリストを取得します。

      cURLコマンド構文

      curl -i -XOPTIONS \
           -H "X-Auth-Token: token" \
           -H "Origin: myURL" \
           -H "Access-Control-Request-Method: method" \
           accountURL/containerName/objectName
      
      • myURLはリクエストのオリジンです。
      • methodは、実行するリクエストのタイプ(HEADGETPUTPOSTDELETEなど)です。
      • objectNameは、アクセスまたは更新するオブジェクトの名前です。

      HTTPレスポンス・コード

      cURLコマンド例

      次の例は、myContainerというコンテナのmyObjectというオブジェクトへのGETメソッドとして、オリジンhttp://www.example.comからOPTIONSリクエストを送信する方法を示しています。

      curl -i -XOPTIONS \
           -H "X-Auth-Token: AUTH_tkb4fdf39c92e9f62cca9b7c196f8b6e6b" \
           -H "Origin: http://www.example.com" \
           -H "Access-Control-Request-Method: GET" \
           https://acme.storage.oraclecloud.com/v1/Storage-acme/myContainer/myObject
      

      次に、このコマンドの出力例を示します。

      < HTTP/1.1 200 OK
      < Allow: HEAD, GET, PUT, POST, OPTIONS, DELETE
      < Content-Length: 0
      < Date: Fri, 06 Mar 2015 11:35:38 GMT
      
    2. 実際のリクエスト(HEADGETPUTPOSTDELETEなど)を送信します。

      cURLコマンド構文

      curl -i -Xmethod \
           -H "X-Auth-Token: token" \
           -H "Origin: myURL" \
           accountURL/containerName/objectName
      
      • methodは、実際のリクエスト(HEADGETPUTPOSTDELETEなど)です。
      • objectNameは、アクセスまたは更新する必要があるオブジェクトの名前です。

      HTTPレスポンス・コード

      cURLコマンド例

      次の例は、myContainerというコンテナのmyObjectというオブジェクトに対して、オリジンhttp://www.example.comからGETリクエストを送信する方法を示しています。

      curl -i -XGET \
           -H "X-Auth-Token: AUTH_tkb4fdf39c92e9f62cca9b7c196f8b6e6b" \
           -H "Origin: http://www.example.com" \
           https://acme.storage.oraclecloud.com/v1/Storage-acme/myContainer/myObject
      

      次に、このコマンドの出力例を示します。

      < HTTP/1.1 200 OK
      < Accept-Ranges: bytes
      < Last-Modified: Fri, 06 Mar 2015 10:35:00 GMT
      < Etag: d41d8cd98f00b204e9800998ecf8427e
      < X-Timestamp: 1469879406.30001
      < X-Trans-Id: tx2a649bebc5d64bdfa8cc6-00579c96daga
      < Date: Fri, 06 Mar 2015 11:35:38 GMT
      < Connection: keep-alive
      < X-Last-Modified-Timestamp: 1469879406.30001
      < Content-Type: application/octet-stream;charset=UTF-8
      < Content-Length: 0
      

コンテナ内のオブジェクトを変更できないようにする

コンテナの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

注意:

Oracle Cloud Infrastructure Object Storage ClassicにREST APIリクエストを送信すると、コンテナ名、オブジェクト名、メタデータ値の非ASCII文字はすべてURLエンコードされている必要があります。 たとえば、my containermy%20containerのようにエンコードする必要があります。この%20は、空白文字のHTMLエンコーディングです。 同様に、my Über Containermy%20%C3%9Cber%20Containerのようにエンコードする必要があります。この%20は空白文字を表し、%C3%9CÜ文字を表します。

HTTPレスポンス・コード

コンテナ・メタデータの取得については、「コンテナ・メタデータの取得」を参照してください。

cURLコマンド例

次の詳細を含むサンプルCloudアカウント:
  • アカウント名: 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-acmehttps://storage-7b16fede61e1417ab83eb52e06f0e365.storage.oraclecloud.com/v1/Storage-7b16fede61e1417ab83eb52e06f0e365に置き換えます。

  • このコマンドは、コンテナFirstContainer4日の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を参照してください。