IBM Cloud Docs
オブジェクト操作

オブジェクト操作

IBM Cloud® Object Storage の最新機能は、RESTful API を介して簡単に使用できます。 ここでは、(バケット内に保管される) オブジェクトの読み取り、書き込み、および構成の操作とメソッドについて説明します。

エンドポイントについて詳しくは、エンドポイントおよびストレージ・ロケーションを参照してください。

アクセス/秘密鍵 (HMAC) 認証に関する注記

HMAC 資格情報を使用して IBM Cloud Object Storage のインスタンスに対して認証を行う場合、 HMAC 署名の構成 時に表 1 に示されている情報が必要です。

HMAC署名コンポーネント
キー
{access_key} サービス・クレデンシャルに割り当てられたアクセス・キー cf4965cebe074720a4929759f57e1214
{date} 要求のフォーマット設定された日付 (yyyymmdd) 20180613
{region} エンドポイントのロケーション・コード Us-Standard
{signature} 秘密鍵、ロケーション、および日付を使用して作成されたハッシュ ffe2b6e18f9dcc41f593f4dbb39882a6bb4d26a73a04326e62a8d344e07c1a3e
{timestamp} 要求のフォーマット設定された日時 20180614T001804Z

オブジェクトのアップロード

オブジェクトへのパスが指定された PUT は、要求本体をオブジェクトとしてアップロードします。 ネットワークの中断のリスクを最小限に抑えるために、単一スレッドでアップロードされるすべてのオブジェクトは 500 MB 未満にする必要があります。 ( 複数パーツでアップロード されるオブジェクトは、10 TB までの大きさにすることができます。)

個人を特定できる情報(PII):バケツやオブジェクトに_名前をつける_際には、名前、場所、その他の手段によってユーザ(自然人)を特定できるような情報は使わないようにしましょう。

Satellite 環境では、すべての操作がサポートされているわけではありません。 詳しくは、 サポートされる Satellite API を参照してください。

単一の PUT 要求を使用して、5 GB までの大きさのオブジェクトをストリーミングすることができます。 マルチパート・アップロードは、より信頼性が高く、複数のスレッドを使用してパートを並行してアップロードすることで、より効率的にアップロードできます。 単一の PUT 要求で大きなオブジェクトをアップロードすると、単一スレッドのパフォーマンス上の制限が生じます。単一スレッドのアップロードで障害が発生した場合は、全体を再試行する必要があります (MPU では、失敗した特定の部分のみを再試行する必要があります)。 単一のスレッドで達成できる正確なスループットは、クライアントから IBM Cloud エンドポイントまでのネットワーク帯域幅、その接続でのパケット損失率(もしあれば)、 HTTP vs HTTPS の使用、接続で使用される特定の暗号、特定のTCP接続パラメータ(ウィンドウサイズなど)、およびその他の要因によって異なります。 これらの要因は単一スレッド・アップロード用に最適化できますが、最適化はすべてのマルチスレッド (マルチパート) アップロードにも同様に適用されます。

個人を特定できる情報(PII):バケットを作成したりオブジェクトを追加したりする際には、名前、場所、その他の手段によってユーザ(自然人)を特定できるような情報は使わないようにしてください。

Satellite 環境では、すべての操作がサポートされているわけではありません。 詳しくは、 サポートされる Satellite API を参照してください。

構文

PUT https://{endpoint}/{bucket-name}/{object-name} # path style
PUT https://{bucket-name}.{endpoint}/{object-name} # virtual host style

オプションのヘッダー

ヘッダー タイプ 説明
x-amz-tagging ストリング オブジェクトに適用するタグのセット。照会パラメーターとしてフォーマット設定されます ("SomeKey=SomeValue")。
x-amz-object-lock-mode ストリング 有効な値は COMPLIANCE です。 x-amz-object-lock-retain-until-date が存在する場合は必須です。
x-amz-object-lock-retain-until-date ISO8601 日時 x-amz-object-lock-mode が存在する場合は必須です。
x-amz-object-lock-legal-hold ストリング 有効な値は ON または OFFです。

要求の例

PUT /apiary/queen-bee HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain; charset=utf-8
Host: s3.us.cloud-object-storage.appdomain.cloud

Content-Length: 533

 The 'queen' bee is developed from larvae selected by worker bees and fed a
 substance referred to as 'royal jelly' to accelerate sexual maturity. After a
 short while the 'queen' is the mother of nearly every bee in the hive, and
 the colony will fight fiercely to protect her.

要求の例

PUT /apiary/queen-bee HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
x-amz-content-sha256: {payload_hash}
Content-Type: text/plain; charset=utf-8
Host: s3.us.cloud-object-storage.appdomain.cloud

Content-Length: 533

 The 'queen' bee is developed from larvae selected by worker bees and fed a
 substance referred to as 'royal jelly' to accelerate sexual maturity. After a
 short while the 'queen' is the mother of nearly every bee in the hive, and
 the colony will fight fiercely to protect her.

応答の例

HTTP/1.1 200 OK
Date: Thu, 25 Aug 2016 18:30:02 GMT
X-Clv-Request-Id: 9f0ca49a-ae13-4d2d-925b-117b157cf5c3
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.121
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f0ca49a-ae13-4d2d-925b-117b157cf5c3
ETag: "3ca744fa96cb95e92081708887f63de5"
Content-Length: 0

オブジェクトのヘッダーの取得

オブジェクトへのパスが指定された HEAD は、そのオブジェクトのヘッダーを取得します。

SSE-KPを使用して暗号化されたオブジェクトに対して返される Etag 値は、 復号化された元のオブジェクトの MD5 ハッシュである。

Satellite 環境では、すべての操作がサポートされているわけではありません。 詳しくは、 サポートされる Satellite API を参照してください。

構文

HEAD https://{endpoint}/{bucket-name}/{object-name} # path style
HEAD https://{bucket-name}.{endpoint}/{object-name} # virtual host style

要求の例

HEAD /apiary/soldier-bee HTTP/1.1
Authorization: Bearer {token}
Host: s3-api.sjc-us-geo.objectstorage.s3.us-south.cloud-object-storage.appdomain.cloud.net

要求の例

HEAD /apiary/soldier-bee HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Host: s3.us.cloud-object-storage.appdomain.cloud

応答の例

HTTP/1.1 200 OK
Date: Thu, 25 Aug 2016 18:32:44 GMT
X-Clv-Request-Id: da214d69-1999-4461-a130-81ba33c484a6
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.121
X-Clv-S3-Version: 2.5
x-amz-request-id: da214d69-1999-4461-a130-81ba33c484a6
ETag: "37d4c94839ee181a2224d6242176c4b5"
Content-Type: text/plain; charset=UTF-8
Last-Modified: Thu, 25 Aug 2016 17:49:06 GMT
Content-Length: 11

オブジェクトのダウンロード

オブジェクトへのパスが指定された GET は、そのオブジェクトをダウンロードします。

オブジェクトが SSE-C/SSE-KP を使用して暗号化されている場合に返される Etag 値は、元の復号されたオブジェクトの MD5 ハッシュではありません

Satellite 環境では、すべての操作がサポートされているわけではありません。 詳しくは、 サポートされる Satellite API を参照してください。

構文

GET https://{endpoint}/{bucket-name}/{object-name} # path style
GET https://{bucket-name}.{endpoint}/{object-name} # virtual host style

オプションのヘッダー

ヘッダー タイプ 説明
range ストリング 指定された範囲内のオブジェクトのバイトを返します。

要求の例

GET /apiary/worker-bee HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud

要求の例

GET /apiary/worker-bee HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Host: s3.us.cloud-object-storage.appdomain.cloud

応答の例

HTTP/1.1 200 OK
Date: Thu, 25 Aug 2016 18:34:25 GMT
X-Clv-Request-Id: 116dcd6b-215d-4a81-bd30-30291fa38f93
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.121
X-Clv-S3-Version: 2.5
x-amz-request-id: 116dcd6b-215d-4a81-bd30-30291fa38f93
ETag: "d34d8aada2996fc42e6948b926513907"
Content-Type: text/plain; charset=UTF-8
Last-Modified: Thu, 25 Aug 2016 17:46:53 GMT
Content-Length: 467

 Female bees that are not fortunate enough to be selected to be the 'queen'
 while they were still larvae become known as 'worker' bees. These bees lack
 the ability to reproduce and instead ensure that the hive functions smoothly,
 acting almost as a single organism in fulfilling their purpose.

オブジェクトの削除

オブジェクトへのパスが指定された DELETE は、オブジェクトを削除します。

Satellite 環境では、すべての操作がサポートされているわけではありません。 詳しくは、 サポートされる Satellite API を参照してください。

構文

DELETE https://{endpoint}/{bucket-name}/{object-name} # path style
DELETE https://{bucket-name}.{endpoint}/{object-name} # virtual host style

要求の例

DELETE /apiary/soldier-bee HTTP/1.1
Authorization: Bearer {token}
Host: s3-api.sjc-us-geo.objectstorage.s3.us-south.cloud-object-storage.appdomain.cloud.net

要求の例

DELETE /apiary/soldier-bee HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Host: s3.us.cloud-object-storage.appdomain.cloud

応答の例

HTTP/1.1 204 No Content
Date: Thu, 25 Aug 2016 17:44:57 GMT
X-Clv-Request-Id: 8ff4dc32-a6f0-447f-86cf-427b564d5855
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.121
X-Clv-S3-Version: 2.5
x-amz-request-id: 8ff4dc32-a6f0-447f-86cf-427b564d5855

複数のオブジェクトの削除

バケットへのパスおよび適切なパラメーターが指定された POST は、指定されたオブジェクト・セットを削除します。 要求本体の base64 でエンコードされた MD5 ハッシュを指定する Content-MD5 ヘッダーは必須です。

必須の Content-MD5 ヘッダーは、base64 でエンコードされた MD5 ハッシュのバイナリー表現である必要があります。

リクエストで指定されたオブジェクトが見つからない場合、結果は削除されたものとして返される。

Satellite 環境では、すべての操作がサポートされているわけではありません。 詳しくは、 サポートされる Satellite API を参照してください。

複数のオブジェクト削除には、クラス A として課金される POST operation が含まれます。 複数の削除に対する POST 要求のコストは、オブジェクトのストレージ・クラス、および削除されるデータの量によって異なります。 価格の詳細については、IBM Cloud Object Storageの価格ページ を参照してください。

オプション要素

ヘッダー
ヘッダー タイプ 説明
Quiet ブール値 要求の抑止モードを有効にします。

要求には、削除するキーを最大 1000 個含めることができます。 これは要求数を削減するのに役立ちますが、多数のキーを削除する場合は注意が必要です。 また、適切なパフォーマンスを確保するために、オブジェクトのサイズも考慮に入れてください。

以下のコードは、ヘッダー・コンテンツの必要な表現を作成する方法の例を示しています。

echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64

構文

POST https://{endpoint}/{bucket-name}?delete= # path style
POST https://{bucket-name}.{endpoint}?delete= # virtual host style

要求の本体には、以下のスキーマの XML ブロックが含まれている必要があります。

リクエスト・スキーマ本体
エレメント タイプ 上位 制約
の削除 コンテナー オブジェクト
オブジェクト コンテナー キー の削除
キー ストリング
オブジェクト 有効なキー・ストリング

要求の例

POST /apiary?delete= HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Type: text/plain; charset=utf-8
Content-MD5: xj/vf7lD7vbIe/bqHTaLvg==

要求の例

POST /apiary?delete= HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain; charset=utf-8
Content-MD5: xj/vf7lD7vbIe/bqHTaLvg==
Host: s3.us.cloud-object-storage.appdomain.cloud

応答の例

HTTP/1.1 200 OK
Date: Wed, 30 Nov 2016 18:54:53 GMT
X-Clv-Request-Id: a6232735-c3b7-4c13-a7b2-cd40c4728d51
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.137
X-Clv-S3-Version: 2.5
x-amz-request-id: a6232735-c3b7-4c13-a7b2-cd40c4728d51
Content-Type: application/xml
Content-Length: 207
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<DeleteResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <Deleted>
         <Key>surplus-bee</Key>
    </Deleted>
    <Deleted>
         <Key>unnecessary-bee</Key>
    </Deleted>
</DeleteResult>

オブジェクトの保存の追加または拡張

適切なパラメーターを指定してオブジェクトに対して発行された PUT は、オブジェクトの保存期間を追加または拡張します。

Satellite 環境では、すべての操作がサポートされているわけではありません。 詳しくは、 サポートされる Satellite API を参照してください。

構文

PUT https://{endpoint}/{bucket-name}/{object-name}?retention # path style
PUT https://{bucket-name}.{endpoint}/{object-name}?retention # virtual host style

ペイロード要素

要求の本体には、以下のスキーマの XML ブロックが含まれている必要があります。

リクエスト・スキーマ本体
エレメント タイプ 上位 注記
保存 コンテナー モード、RetainUntilDate
必須
モード ストリング
保存 必須-有効な値は COMPLIANCE です。
RetainUntilDate タイムスタンプ
保存 必須

以下のコードは、ヘッダー・コンテンツの必要な表現を作成する方法の例を示しています。

echo -n (XML block) | openssl dgst -md5 -binary | openssl enc -base64

要求の例

これは、オブジェクトの保存を追加または拡張する例です。

PUT /apiary/myObject?retention HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Content-MD5: cDeRJIdLuEXWmLpA79K2kg==
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 119
<Retention>
    <Mode>COMPLIANCE</Mode>
    <RetainUntilDate>2023-04-12T23:01:00.000Z</RetainUntilDate>
</Retention>

応答の例

HTTP/1.1 200 OK
Date: Wed, 5 Oct 2020 15:39:38 GMT
X-Clv-Request-Id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Accept-Ranges: bytes
Content-Length: 0


オブジェクトへのタグの追加

適切なパラメーターを指定してオブジェクトに対して発行された PUT は、そのオブジェクトに関連付けられたキー値タグのセットを作成または置換します。

Satellite 環境では、すべての操作がサポートされているわけではありません。 詳しくは、 サポートされる Satellite API を参照してください。

構文

PUT https://{endpoint}/{bucket-name}/{object-name}?tagging # path style
PUT https://{bucket-name}.{endpoint}/{object-name}?tagging # virtual host style

ペイロード要素

要求の本体には、以下のスキーマの XML ブロックが含まれている必要があります。

リクエスト・スキーマ本体
エレメント タイプ 上位 注記
タグ付け コンテナー TagSet
必須
TagSet コンテナー タグ タグ付け 必須
タグ ストリング キー、値 TagSet 必須
キー コンテナー
タグ 必須
ストリング
タグ 必須

タグは、以下の制約事項に従う必要があります。

  • オブジェクトは最大 10 個のタグを持つことができます
  • オブジェクトごとに、各タグ・キーは固有でなければならず、各タグ・キーは 1 つの値のみを持つことができます。
  • 最小キー長-1 Unicode 文字 ( UTF-8 )
  • キーの最大長- UTF-8 では 128 文字の Unicode 文字
  • 最大鍵バイト・サイズ-256 バイト
  • 最小値の長さ-0 Unicode 文字 ( UTF-8 ) (タグ値は空にすることができます)
  • 値の最大長- UTF-8 では 256 文字の Unicode 文字
  • 最大値バイト・サイズ-512 バイト
  • タグのキーと値は、米国の英数字(a-zA-Z0-9 )と、 UTF-8 で表されるスペース、および以下の記号で構成される: + -, =, ., _, :, /@
  • タグのキーと値には大/小文字の区別があります
  • ibm: をタグのキー接頭部として使用することはできません

要求の例

これは、一連のタグをオブジェクトに追加する例です。

PUT /apiary/myObject?tagging HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 119
PUT /apiary/myObject?tagging HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 128
<Tagging>
   <TagSet>
      <Tag>
         <Key>string</Key>
         <Value>string</Value>
      </Tag>
   </TagSet>
</Tagging>

応答の例

HTTP/1.1 200 OK
Date: Wed, 5 Oct 2020 15:39:38 GMT
X-Clv-Request-Id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Accept-Ranges: bytes
Content-Length: 0

オブジェクトのタグの読み取り

適切なパラメーターを指定してオブジェクトに対して発行された GET は、そのオブジェクトに関連付けられたキー値タグのセットを返します。

Satellite 環境では、すべての操作がサポートされているわけではありません。 詳しくは、 サポートされる Satellite API を参照してください。

構文

GET https://{endpoint}/{bucket-name}/{object-name}?tagging # path style
GET https://{bucket-name}.{endpoint}/{object-name}?tagging # virtual host style

要求の例

これは、オブジェクト・タグのセットを読み取る例です。

GET /apiary/myObject?tagging HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 0
GET /apiarymyObject?tagging HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 0

応答の例

HTTP/1.1 200 OK
Date: Wed, 5 Oct 2020 15:39:38 GMT
X-Clv-Request-Id: 7afca6d8-e209-4519-8f2c-1af3f1540b42
Accept-Ranges: bytes
Content-Length: 128
<Tagging>
   <TagSet>
      <Tag>
         <Key>string</Key>
         <Value>string</Value>
      </Tag>
   </TagSet>
</Tagging>

オブジェクトのタグの削除

適切なパラメーターを指定してバケットに対して発行された DELETE は、オブジェクトのタグを削除します。

Satellite 環境では、すべての操作がサポートされているわけではありません。 詳しくは、 サポートされる Satellite API を参照してください。

構文

DELETE https://{endpoint}/{bucket-name}{object-name}?tagging # path style
DELETE https://{bucket-name}.{endpoint}{object-name}?tagging # virtual host style

要求の例

これは、オブジェクトのタグを削除する例です。

DELETE /apiary/myObject?tagging HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud

要求の例

DELETE /apiary/myObject?tagging HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud

サーバーは 204 No Content と応答します。


オブジェクトのコピー

新規オブジェクトへのパスが指定された PUT は、x-amz-copy-source ヘッダーで指定された別のオブジェクトの新規コピーを作成します。 変更しない限り、メタデータは同じままです。

個人を特定できる情報(PII):バケツやオブジェクトに_名前をつける_際には、名前、場所、その他の手段によってユーザ(自然人)を特定できるような情報は使わないようにしましょう。

オブジェクトを (ロケーション間でも) コピーしても、パブリック・アウトバウンド帯域幅の料金は発生しません。 すべてのデータは COS 内部ネットワーク内に残ります。

Satellite 環境では、すべての操作がサポートされているわけではありません。 詳しくは、 サポートされる Satellite API を参照してください。

構文

PUT https://{endpoint}/{bucket-name}/{object-name} # path style
PUT https://{bucket-name}.{endpoint}/{object-name} # virtual host style

オプションのヘッダー

ヘッダー タイプ 説明
x-amz-metadata-directive ストリング (COPY または REPLACE) REPLACEの場合、元のメタデータは指定された新しいメタデータで上書きされます。
x-amz-tagging ストリング オブジェクトに適用するタグのセット。照会パラメーターとしてフォーマット設定されます ("SomeKey=SomeValue")。
x-amz-tagging-directive ストリング (COPY または REPLACE) REPLACE は、オリジナルのタグを、提供された新しいタグで上書きする。
x-amz-copy-source-if-match ストリング (ETag) 指定された ETag がソース・オブジェクトと一致する場合にコピーが作成されます。
x-amz-copy-source-if-none-match ストリング (ETag) 指定された ETag がソース・オブジェクトと異なる場合にコピーが作成されます。
x-amz-copy-source-if-unmodified-since ストリング (タイム・スタンプ) 指定された日付以降にソース・オブジェクトが変更されていない場合にコピーが作成されます。 日付は有効な HTTP 日付でなければなりません (例: Wed, 30 Nov 2016 20:21:38 GMT)。
x-amz-copy-source-if-modified-since ストリング (タイム・スタンプ) 指定された日付以降にソース・オブジェクトが変更された場合にコピーが作成されます。 日付は有効な HTTP 日付でなければなりません (例: Wed, 30 Nov 2016 20:21:38 GMT)。

要求の例

以下の基本的な例では、bee バケット内の garden オブジェクトのコピーが、apiary バケット内に新しいキー wild-bee で作成されます。

PUT /apiary/wild-bee HTTP/1.1
Authorization: Bearer {token}
x-amz-copy-source: /garden/bee
Host: s3.us.cloud-object-storage.appdomain.cloud

要求の例

PUT /apiary/wild-bee HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
x-amz-copy-source: /garden/bee
Host: s3.us.cloud-object-storage.appdomain.cloud

応答の例

HTTP/1.1 200 OK
Date: Wed, 30 Nov 2016 19:52:52 GMT
X-Clv-Request-Id: 72992a90-8f86-433f-b1a4-7b1b33714bed
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.137
X-Clv-S3-Version: 2.5
x-amz-request-id: 72992a90-8f86-433f-b1a4-7b1b33714bed
ETag: "853aab195ce770b0dfb294a4e9467e62"
Content-Type: application/xml
Content-Length: 240
<CopyObjectResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <LastModified>2016-11-30T19:52:53.125Z</LastModified>
  <ETag>"853aab195ce770b0dfb294a4e9467e62"</ETag>
</CopyObjectResult>

オブジェクトの CORS 構成の検査

オブジェクトへのパスと共にオリジンおよび要求タイプが指定された OPTIONS は、その要求タイプを使用してそのオリジンからそのオブジェクトにアクセス可能かどうかを検査します。 他のすべての要求とは異なり、OPTIONS 要求には authorization ヘッダーおよび x-amx-date ヘッダーは不要です。

Satellite 環境では、すべての操作がサポートされているわけではありません。 詳しくは、 サポートされる Satellite API を参照してください。

構文

OPTIONS https://{endpoint}/{bucket-name}/{object-name} # path style
OPTIONS https://{bucket-name}.{endpoint}/{object-name} # virtual host style

要求の例

OPTIONS /apiary/queen-bee HTTP/1.1
Access-Control-Request-Method: PUT
Origin: http://ibm.com
Host: s3.us.cloud-object-storage.appdomain.cloud

要求の例

OPTIONS /apiary/queen-bee HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Access-Control-Request-Method: PUT
Origin: http://ibm.com
Host: s3.us.cloud-object-storage.appdomain.cloud

応答の例

HTTP/1.1 200 OK
Date: Wed, 07 Dec 2016 16:23:14 GMT
X-Clv-Request-Id: 9a2ae3e1-76dd-4eec-a8f2-1a7f60f63483
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.137
X-Clv-S3-Version: 2.5
x-amz-request-id: 9a2ae3e1-76dd-4eec-a8f2-1a7f60f63483
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: PUT
Access-Control-Allow-Credentials: true
Vary: Origin, Access-Control-Request-Headers, Access-Control-Allow-Methods
Content-Length: 0


複数のパートでのオブジェクトのアップロード

大きなオブジェクトを処理する場合、マルチパート・アップロード操作でオブジェクトを IBM Cloud® Object Storage に書き込むことをお勧めします。 単一オブジェクトのアップロードは一連のパーツとして実行でき、これらのパーツは任意の順序で並行して個別にアップロードできます。 アップロードが完了した時点で、Object Storage はすべてのパーツを単一オブジェクトとして表します。 これには、ネットワーク割り込みが原因で大規模なアップロードが失敗することがない、時間の経過とともにアップロードを一時停止および再開できる、オブジェクトの作成中にそのオブジェクトをアップロードできるなど、多くの利点があります。

複数パーツ・アップロードは、5 MB を超えるオブジェクトに対してのみ使用可能です。 50 GB より小さいオブジェクトの場合、最適なパフォーマンスを得るため、パートのサイズとして 20 MB から 100 MB が推奨されます。 それより大きいオブジェクトの場合、パーツのサイズを増やしてもパフォーマンスへの大きな影響はありません。

複雑さが増すため、開発者はマルチパート・アップロードをサポートするライブラリーを使用することが推奨されています。

不完全な複数パーツ・アップロードは、オブジェクトが削除されるか、AbortIncompleteMultipartUpload を使用して複数パーツ・アップロードが中止されるまで保持されます。 不完全な複数パーツ・アップロードが中止されない場合、部分アップロードによってリソースの使用が継続されます。 インターフェースの設計でこの点を考慮し、不完全な複数パーツ・アップロードをクリーンアップする必要があります。

オブジェクトを複数のパートでアップロードするには、以下の 3 つのフェーズがあります。

  1. アップロードが開始され、UploadId が作成されます。
  2. 個々のパートは、順次パート番号およびオブジェクトの UploadId を指定してアップロードされます。
  3. すべてのパートのアップロードが完了すると、UploadId と、各パート番号およびそれぞれの Etag 値をリストする XML ブロックを指定した要求を送信することでアップロードが完了します。

マルチパート・アップロードの開始

照会パラメーター POST が指定された upload がオブジェクトに対して発行されると、新しい UploadId 値が作成され、アップロードされるオブジェクトの各パートによってその値が参照されます。

個人を特定できる情報(PII):バケツやオブジェクトに_名前をつける_際には、名前、場所、その他の手段によってユーザ(自然人)を特定できるような情報は使わないようにしましょう。

Satellite 環境では、すべての操作がサポートされているわけではありません。 詳しくは、 サポートされる Satellite API を参照してください。

構文

POST https://{endpoint}/{bucket-name}/{object-name}?uploads= # path style
POST https://{bucket-name}.{endpoint}/{object-name}?uploads= # virtual host style

要求の例

POST /some-bucket/multipart-object-123?uploads= HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud

要求の例

POST /some-bucket/multipart-object-123?uploads= HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Host: s3.us.cloud-object-storage.appdomain.cloud

応答の例

HTTP/1.1 200 OK
Date: Fri, 03 Mar 2017 20:34:12 GMT
X-Clv-Request-Id: 258fdd5a-f9be-40f0-990f-5f4225e0c8e5
Accept-Ranges: bytes
Server: Cleversafe/3.9.1.114
X-Clv-S3-Version: 2.5
Content-Type: application/xml
Content-Length: 276
<InitiateMultipartUploadResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Bucket>some-bucket</Bucket>
  <Key>multipart-object-123</Key>
  <UploadId>0000015a-95e1-4326-654e-a1b57887784f</UploadId>
</InitiateMultipartUploadResult>

パーツをアップロードします

照会パラメーター PUT および partNumber が指定された uploadId 要求がオブジェクトに対して発行されると、オブジェクトの 1 つのパートがアップロードされます。 パートは順次または並列にアップロードされることが可能ですが、順番に番号が付けられている必要があります。

個人を特定できる情報(PII):バケツやオブジェクトに_名前をつける_際には、名前、場所、その他の手段によってユーザ(自然人)を特定できるような情報は使わないようにしましょう。

Satellite 環境では、すべての操作がサポートされているわけではありません。 詳しくは、 サポートされる Satellite API を参照してください。

構文

PUT https://{endpoint}/{bucket-name}/{object-name}?partNumber={sequential-integer}&uploadId={uploadId}= # path style
PUT https://{bucket-name}.{endpoint}/{object-name}?partNumber={sequential-integer}&uploadId={uploadId}= # virtual host style

要求の例

PUT /some-bucket/multipart-object-123?partNumber=1&uploadId=0000015a-df89-51d0-2790-dee1ac994053 HTTP/1.1
Authorization: Bearer {token}
Content-Type: application/pdf
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 13374550

要求の例

PUT /some-bucket/multipart-object-123?partNumber=1&uploadId=0000015a-df89-51d0-2790-dee1ac994053 HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
x-amz-content-sha256: STREAMING-AWS4-HMAC-SHA256-PAYLOAD
Content-Encoding: aws-chunked
x-amz-decoded-content-length: 13374550
Content-Type: application/pdf
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 13374550

応答の例

HTTP/1.1 200 OK
Date: Sat, 18 Mar 2017 03:56:41 GMT
X-Clv-Request-Id: 17ba921d-1c27-4f31-8396-2e6588be5c6d
Accept-Ranges: bytes
Server: Cleversafe/3.9.1.114
X-Clv-S3-Version: 2.5
ETag: "7417ca8d45a71b692168f0419c17fe2f"
Content-Length: 0

パートのリスト

アクティブな GET が照会パラメーターとして指定され、マルチパート・オブジェクトへのパスが指定された UploadID は、オブジェクトのすべてのパートのリストを返します。

Satellite 環境では、すべての操作がサポートされているわけではありません。 詳しくは、 サポートされる Satellite API を参照してください。

構文

GET https://{endpoint}/{bucket-name}/{object-name}?uploadId={uploadId} # path style
GET https://{bucket-name}.{endpoint}/{object-name}?uploadId={uploadId} # virtual host style

照会パラメーター

| パラメータ|必須か?| タイプ|説明 |---------------------|-----------|--------|----------------------------------------------------------| | uploadId | 必須 | ストリング | マルチパート・アップロードの初期化時に返されるアップロード ID。| | max-parts | オプション | ストリング | デフォルトは 1,000 です。| | part-number​-marker | オプション | ストリング | パーツのリストの開始位置を定義します。|

要求の例

GET /farm/spaceship?uploadId=01000162-3f46-6ab8-4b5f-f7060b310f37 HTTP/1.1
Authorization: bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud

要求の例

GET /farm/spaceship?uploadId=01000162-3f46-6ab8-4b5f-f7060b310f37 HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Host: s3.us.cloud-object-storage.appdomain.cloud

応答の例

HTTP/1.1 200 OK
Date: Mon, 19 Mar 2018 17:21:08 GMT
X-Clv-Request-Id: 6544044d-4f88-4bb6-9ee5-bfadf5023249
Server: Cleversafe/3.12.4.20
X-Clv-S3-Version: 2.5
Accept-Ranges: bytes
Content-Type: application/xml
Content-Length: 743
<ListPartsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Bucket>farm</Bucket>
  <Key>spaceship</Key>
  <UploadId>01000162-3f46-6ab8-4b5f-f7060b310f37</UploadId>
  <Initiator>
    <ID>d6f04d83-6c4f-4a62-a165-696756d63903</ID>
    <DisplayName>d6f04d83-6c4f-4a62-a165-696756d63903</DisplayName>
  </Initiator>
  <Owner>
    <ID>d6f04d83-6c4f-4a62-a165-696756d63903</ID>
    <DisplayName>d6f04d83-6c4f-4a62-a165-696756d63903</DisplayName>
  </Owner>
  <StorageClass>STANDARD</StorageClass>
  <MaxParts>1000</MaxParts>
  <IsTruncated>false</IsTruncated>
  <Part>
    <PartNumber>1</PartNumber>
    <LastModified>2018-03-19T17:20:35.482Z</LastModified>
    <ETag>"bb03cf4fa8603fe407a65ee1dba55265"</ETag>
    <Size>7128094</Size>
  </Part>
</ListPartsResult>

マルチパート・アップロードの完了

照会パラメーター POST が指定され、適切な XML ブロックが本体に指定された uploadId 要求がオブジェクトに対して発行されると、マルチパート・アップロードが実行されます。

Satellite 環境では、すべての操作がサポートされているわけではありません。 詳しくは、 サポートされる Satellite API を参照してください。

構文

POST https://{endpoint}/{bucket-name}/{object-name}?uploadId={uploadId}= # path style
POST https://{bucket-name}.{endpoint}/{object-name}?uploadId={uploadId}= # virtual host style

要求の本体には、以下のスキーマの XML ブロックが含まれている必要があります。

リクエスト・スキーマ本体
エレメント タイプ 上位 制約
CompleteMultipartUpload コンテナー パーツ
パーツ コンテナー PartNumber, ETag の削除
PartNumber ストリング
オブジェクト 有効な部品番号
ETag ストリング
オブジェクト 有効な ETag 値ストリング
<CompleteMultipartUpload>
  <Part>
    <PartNumber>{sequential part number}</PartNumber>
    <ETag>{ETag value from part upload response header}</ETag>
  </Part>
</CompleteMultipartUpload>

要求の例

POST /some-bucket/multipart-object-123?uploadId=0000015a-df89-51d0-2790-dee1ac994053 HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain; charset=utf-8
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 257

要求の例

POST /some-bucket/multipart-object-123?uploadId=0000015a-df89-51d0-2790-dee1ac994053 HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain; charset=utf-8
Host: s3.us.cloud-object-storage.appdomain.cloud
Content-Length: 257
<CompleteMultipartUpload>
  <Part>
    <PartNumber>1</PartNumber>
    <ETag>"7417ca8d45a71b692168f0419c17fe2f"</ETag>
  </Part>
  <Part>
    <PartNumber>2</PartNumber>
    <ETag>"7417ca8d45a71b692168f0419c17fe2f"</ETag>
  </Part>
</CompleteMultipartUpload>

応答の例

HTTP/1.1 200 OK
Date: Fri, 03 Mar 2017 19:18:44 GMT
X-Clv-Request-Id: c8be10e7-94c4-4c03-9960-6f242b42424d
Accept-Ranges: bytes
Server: Cleversafe/3.9.1.114
X-Clv-S3-Version: 2.5
ETag: "765ba3df36cf24e49f67fc6f689dfc6e-2"
Content-Type: application/xml
Content-Length: 364
<CompleteMultipartUploadResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Location>http://s3.us.cloud-object-storage.appdomain.cloud/zopse/multipart-object-123</Location>
  <Bucket>some-bucket</Bucket>
  <Key>multipart-object-123</Key>
  <ETag>"765ba3df36cf24e49f67fc6f689dfc6e-2"</ETag>
</CompleteMultipartUploadResult>

未完了マルチパート・アップロードの打ち切り

照会パラメーター DELETE が指定された uploadId 要求がオブジェクトに対して発行されると、マルチパート・アップロードの終了していないパートがすべて削除されます。

Satellite 環境では、すべての操作がサポートされているわけではありません。 詳しくは、 サポートされる Satellite API を参照してください。

構文

DELETE https://{endpoint}/{bucket-name}/{object-name}?uploadId={uploadId}= # path style
DELETE https://{bucket-name}.{endpoint}/{object-name}?uploadId={uploadId}= # virtual host style

要求の例

DELETE /some-bucket/multipart-object-123?uploadId=0000015a-df89-51d0-2790-dee1ac994053 HTTP/1.1
Authorization: Bearer {token}
Host: s3.us.cloud-object-storage.appdomain.cloud

要求の例

DELETE /some-bucket/multipart-object-123?uploadId=0000015a-df89-51d0-2790-dee1ac994053 HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Host: s3.us.cloud-object-storage.appdomain.cloud

応答の例

HTTP/1.1 204 No Content
Date: Thu, 16 Mar 2017 22:07:48 GMT
X-Clv-Request-Id: 06d67542-6a3f-4616-be25-fc4dbdf242ad
Accept-Ranges: bytes
Server: Cleversafe/3.9.1.114
X-Clv-S3-Version: 2.5

アーカイブ済みオブジェクトの一時的なリストア

照会パラメーター POST が指定された restore 要求がオブジェクトに対して発行されると、アーカイブ済みオブジェクトの一時的なリストアが要求されます。 ペイロードの保全性検査のために Content-MD5 ヘッダーが必須です。

オブジェクトをダウンロードまたは変更する前に、アーカイブ済みオブジェクトをリストアする必要があります。 オブジェクトの存続期間 (それを過ぎるとオブジェクトの一時コピーは削除されます) を指定する必要があります。

ライフサイクル・ポリシー遷移ストレージ・クラスが GLACIER のバケットの場合、リストアされたコピーがアクセス可能になるまでに最大 12 時間の遅延が生じる可能性があります。 遷移ストレージ・クラスが ACCELERATED に設定されている場合、リストアされたオブジェクトが使用可能になるまでに最大 2 時間の遅延が生じる可能性があります。 リストアされたコピーが使用可能かどうかを HEAD 要求で検査できます。

オブジェクトを永続的にリストアするには、アクティブなライフサイクル構成がないバケットにオブジェクトをコピーする必要があります。

Satellite 環境では、すべての操作がサポートされているわけではありません。 詳しくは、 サポートされる Satellite API を参照してください。

構文

POST https://{endpoint}/{bucket-name}/{object-name}?restore # path style
POST https://{bucket-name}.{endpoint}/{object-name}?restore # virtual host style

ペイロード要素

要求の本体には、以下のスキーマの XML ブロックが含まれている必要があります。

エレメント タイプ 上位 制約
RestoreRequest コンテナー Days、GlacierJobParameters なし なし
日数 整数 なし RestoreRequest 一時的にリストアされたオブジェクトの存続期間を指定します。 オブジェクトの復元されたコピーを存在させることができる最小日数は 1 です。 復元期間が経過すると, オブジェクトの一時コピーが除去されます。
GlacierJobParameters ストリング Tier RestoreRequest なし
Tier ストリング なし GlacierJobParameters オプション。ブランクのままにすると、デフォルトで、オブジェクトが書き込まれたときに設定されていたポリシーの Storage Tier に関連付けられている値になります。 この値をブランクのままにしない場合、バケットのライフサイクル・ポリシーの遷移ストレージ・クラスが GLACIER に設定されている場合は Bulk に設定する 必要 があり、遷移ストレージ・クラスが ACCELERATED に設定されている場合は Accelerated に設定する 必要 があります。
<RestoreRequest>
    <Days>{integer}</Days>
    <GlacierJobParameters>
        <Tier>Bulk</Tier>
    </GlacierJobParameters>
</RestoreRequest>

要求の例

POST /apiary/queenbee?restore HTTP/1.1
Authorization: {authorization-string}
Content-Type: text/plain
Content-MD5: rgRRGfd/OytcM7O5gIaQ==
Content-Length: 305
Host: s3.us.cloud-object-storage.appdomain.cloud

要求の例

POST /apiary/queenbee?restore HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-MD5: rgRRGfd/OytcM7O5gIaQ==
Content-Length: 305
Host: s3.us.cloud-object-storage.appdomain.cloud
<RestoreRequest>
    <Days>3</Days>
    <GlacierJobParameters>
        <Tier>Bulk</Tier>
    </GlacierJobParameters>
</RestoreRequest>

応答の例

HTTP/1.1 202 Accepted
Date: Thu, 16 Mar 2017 22:07:48 GMT
X-Clv-Request-Id: 06d67542-6a3f-4616-be25-fc4dbdf242ad
Accept-Ranges: bytes
Server: Cleversafe/3.9.1.114
X-Clv-S3-Version: 2.5

メタデータの更新

既存のオブジェクトのメタデータを更新する方法は、2 とおりあります。

  • 新しいメタデータと元のオブジェクト・コンテンツが指定された PUT 要求
  • 元のオブジェクトをコピー・ソースとして指定し、新しいメタデータを使用する COPY 要求の実行

すべてのメタデータ・キーには x-amz-meta- 接頭語を付ける必要があります。

Satellite 環境では、すべての操作がサポートされているわけではありません。 詳しくは、 サポートされる Satellite API を参照してください。

PUT を使用したメタデータの更新

コンテンツが上書きされるため、PUT 要求には既存のオブジェクトのコピーが必要です。

構文

PUT https://{endpoint}/{bucket-name}/{object-name} # path style
PUT https://{bucket-name}.{endpoint}/{object-name} # virtual host style

要求の例

PUT /apiary/queen-bee HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain; charset=utf-8
Host: s3.us.cloud-object-storage.appdomain.cloud
x-amz-meta-key1: value1
x-amz-meta-key2: value2

Content-Length: 533

 The 'queen' bee is developed from larvae selected by worker bees and fed a
 substance referred to as 'royal jelly' to accelerate sexual maturity. After a
 short while the 'queen' is the mother of nearly every bee in the hive, and
 the colony will fight fiercely to protect her.

要求の例

PUT /apiary/queen-bee HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain; charset=utf-8
Content-MD5: M625BaNwd/OytcM7O5gIaQ==
Host: s3.us.cloud-object-storage.appdomain.cloud
x-amz-meta-key1: value1
x-amz-meta-key2: value2

Content-Length: 533

 The 'queen' bee is developed from larvae selected by worker bees and fed a
 substance referred to as 'royal jelly' to accelerate sexual maturity. After a
 short while the 'queen' is the mother of nearly every bee in the hive, and
 the colony will fight fiercely to protect her.

応答の例

HTTP/1.1 200 OK
Date: Thu, 25 Aug 2016 18:30:02 GMT
X-Clv-Request-Id: 9f0ca49a-ae13-4d2d-925b-117b157cf5c3
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.121
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f0ca49a-ae13-4d2d-925b-117b157cf5c3
ETag: "3ca744fa96cb95e92081708887f63de5"
Content-Length: 0

COPY を使用したメタデータの更新

COPY 要求の詳細については、 ここ を参照してください。

構文

PUT https://{endpoint}/{bucket-name}/{object-name} # path style
PUT https://{bucket-name}.{endpoint}/{object-name} # virtual host style

要求の例

PUT /apiary/queen-bee HTTP/1.1
Authorization: Bearer {token}
Content-Type: text/plain; charset=utf-8
Host: s3.us.cloud-object-storage.appdomain.cloud
x-amz-copy-source: /apiary/queen-bee
x-amz-metadata-directive: REPLACE
x-amz-meta-key1: value1
x-amz-meta-key2: value2

要求の例

PUT /apiary/queen-bee HTTP/1.1
Authorization: 'AWS4-HMAC-SHA256 Credential={access-key}/{date}/{region}/s3/aws4_request,SignedHeaders=host;x-amz-date;,Signature={signature}'
x-amz-date: {timestamp}
Content-Type: text/plain
Host: s3.us.cloud-object-storage.appdomain.cloud
x-amz-copy-source: /apiary/queen-bee
x-amz-metadata-directive: REPLACE
x-amz-meta-key1: value1
x-amz-meta-key2: value2

応答の例

HTTP/1.1 200 OK
Date: Thu, 25 Aug 2016 18:30:02 GMT
X-Clv-Request-Id: 9f0ca49a-ae13-4d2d-925b-117b157cf5c3
Accept-Ranges: bytes
Server: Cleversafe/3.9.0.121
X-Clv-S3-Version: 2.5
x-amz-request-id: 9f0ca49a-ae13-4d2d-925b-117b157cf5c3
ETag: "3ca744fa96cb95e92081708887f63de5"
Content-Length: 0

次のステップ

バケット操作について詳しくは、 資料 を参照してください。