オブジェクト作成 PUT /v1/{account}/{container}/{object}{?multipart-manifest}

指定したコンテンツとメタデータを使用して新しいオブジェクトを作成する。あるいは、指定したコンテンツとメタデータで既存のオブジェクトを置き換える。

この操作を使ってマニフェストオブジェクトをコピーする場合、新しいオブジェクトは、すべてのセグメントを結合した通常オブジェクトになります。従って、結合サイズが5GBを超えるようなオブジェクトをコピーすることはできません。

オブジェクトの作成に成功した場合、201 Createdステータスコードを返却します。

リクエストがタイムアウトした場合は408 Request Timeoutエラーコードを返却します。

Transfer-EncodingまたはContent-Lengthリクエストヘッダーのどちらも指定されていない場合、411 Length Requiredエラーコードを返却します。

もしETagに設定した値とデータのMD5チェックサムが一致しない場合は、422 Unprocessable Entityエラーコードを返却します。

注: コンテナ内に大量のオブジェクトが作成されている場合、オブジェクトの一覧情報を取得すると応答遅延が発生することがあります。性能低下を回避するため、1コンテナへのオブジェクト作成数の上限は1,000,000件を推奨します。

Request Headers

X-Object-Manifest

動的ラージオブジェクトのマニフェストオブジェクト設定をします。この値は{container}/{prefix}のようにコンテナ名と分割オブジェクトのプレフィクス名を取ります。また、コンテナ名および分割オブジェクトのプレフィクス名はUTF-8エンコードをしてからさらにURLエンコードしてからヘッダーに設定する必要があります。

Data Type Cardinality
String 0..1

X-Auth-Token

認証トークン

Data Type Cardinality
String 1..1

Content-Length

オブジェクトのサイズ(バイト)。chunked形式の転送を行う場合は設定できません。

Data Type Cardinality
String 0..1

Transfer-Encoding

chunked形式の転送を行う場合はTransfer-Encoding: chunkedを設定します。もし本ヘッダーを使用する場合は、Content-Lengthヘッダーを付与してはいけません。

Data Type Cardinality
String 0..1

Content-Type

オブジェクトのMIMEタイプを変更します。

Data Type Cardinality
String 0..1

X-Detect-Content-Type

trueを設定すると、オブジェクトストレージがファイル拡張子に基づいたMIME typeを自動的に設定するようになります。Content-Typeヘッダーによる設定は無視されるようになります。

Data Type Cardinality
Boolean 0..1

X-Copy-From

複製元オブジェクト名を指定します。

この値は{container}/{object}の形式で指定します。

また、この値はUTF-8エンコードをしてからさらにURLエンコードしてからヘッダーに設定する必要があります。

X-Copy-Fromヘッダーを用いたPUT操作を行うこととCOPY操作を行うことは同様です。

Data Type Cardinality
String 0..1

ETag

リクエストボディのMD5チェックサム。例えば、アップロードするファイルのMD5チェックサムです。完全なアップロードを行うために、あらかじめオブジェクトのMD5チェックサムを計算しておき、本ヘッダーに設定してリクエストすることを強くおすすめします。なお、この値は引用符で囲まない値となります。

Data Type Cardinality
String 0..1

Content-Disposition

ブラウザの振る舞いを設定します。

設定する値については、http://www.ietf.org/rfc/rfc2183.txtをご参照ください。

Data Type Cardinality
String 0..1

Content-Encoding

Content-Encodingメタデータを設定します。

Data Type Cardinality
String 0..1

X-Delete-At

オブジェクトが削除される日をUNIX Epochタイムスタンプの形式で指定する。

Data Type Cardinality
Int 0..1

X-Delete-After

オブジェクトが削除されるまでの秒数を指定する。この値はオブジェクトストレージ内でX-Delete-Atに変換される。

Data Type Cardinality
Int 0..1

X-Object-Meta-name

オブジェクトメタデータ。{name}はメタデータ項目の名前。

Data Type Cardinality
String 0..*

If-None-Match

Expect: 100-Continueと組み合わせて使用します。サーバが既にヘッダーに指定したデータのキャッシュを持っているかどうか確認するために使用されます。

Data Type Cardinality
String 0..1

Request Parameter

{account}

プロジェクト単位でユニークに割り当てられる名前

Data Type Cardinality
String 1..1

{container}

コンテナ名

Data Type Cardinality
String 1..1

{object}

オブジェクト名

Data Type Cardinality
String 1..1

multipart-manifest

?multipart-manifest=putを指定すると、オブジェクトは静的ラージオブジェクトのマニフェストとしてアップロードされます。リクエストボディにはマニフェストを記述したものを含めます。

Data Type Cardinality
String 0..1

Response Headers

Content-Length

レスポンスボディのバイト数

Data Type Cardinality
String 1..1

ETag

オブジェクトのサイズが5GBよりも小さい場合、この値はアップロードしたオブジェクトのMD5チェックサムとなります。この値は引用符で囲まれません。

もし、リクエストでETagヘッダーを付与してPUT操作が成功していた場合、この値は指定したETagと同じになります。

また、ETagヘッダーを付与していなかった場合は、この値とアップロードしたオブジェクトのETag値が同じか確認してください。

静的ラージオブジェクトの場合、マニフェストの各セグメントのETagとMD5 checksumsを連結した文字列に対して、MD5 checksum を取得した値が返却される。

動的ラージオブジェクトの場合は、この値は空文字のMD5チェックサムとなります。

Data Type Cardinality
String 1..1

Content-Type

オブジェクトのMIMEタイプ

Data Type Cardinality
String 1..1

X-Trans-Id

このリクエストに付与されるID。トラブルについて問い合わせる際に利用されます。

Data Type Cardinality
Uuid 1..1

Date

トランザクションの実行された日付と時間

Data Type Cardinality
Datetime 1..1

Response Elements

特にありません

Example of Request


curl -i $publicURL/janeausten/helloworld.txt -T ./helloworld.txt -X PUT -H "Content-Length: 1" -H "Content-Type: text/html; charset=UTF-8" -H "X-Auth-Token: $token"
     

Example of Response


HTTP/1.1 201 Created
Last-Modified: Fri, 17 Jan 2014 17:28:35 GMT
Content-Length: 116
Etag: d41d8cd98f00b204e9800998ecf8427e
Content-Type: text/html; charset=UTF-8
X-Trans-Id: tx4d5e4f06d357462bb732f-0052d96843
Date: Fri, 17 Jan 2014 17:28:35 GMT