GET Object¶
オブジェクトを取得します。
オブジェクトに対しREAD権限を持たなければ、オブジェクトを取得することはできません。
匿名ユーザにREAD権限が付与されていれば、Authorizationヘッダーを利用せずにオブジェクトを取得することができます。
リクエスト情報¶
シンタックス¶
GET /{object key} HTTP/1.1
Host: {bucket name}.storage-dag.iijgio.com
Date: {date}
Authorization: {authorization string}
Range: bytes={byte range}
リクエストパラメータ¶
この操作では、以下のリクエストパラメータが使用可能です。
これらのリクエストパラメータを設定することで、ユーザは GET Object のレスポンスヘッダを上書きできます。パラメータを設定しない場合は、PUT Object 時にリクエストヘッダーで指定した値が返されます。
GET Object に失敗した場合、エラーレスポンスのレスポンスヘッダは上書きされません。
パラメータ名 | 説明 | 必須 | ||||
---|---|---|---|---|---|---|
response-content-type |
|
× | ||||
response-content-language |
|
× | ||||
response-cache-control |
|
× | ||||
response-content-disposition |
|
× | ||||
response-content-encoding |
|
× |
リクエストヘッダー¶
この操作では基本リクエストヘッダーに加え、以下のヘッダーを使用します。
HTTPヘッダー | 説明 | 必須 | ||||||
---|---|---|---|---|---|---|---|---|
Range |
|
× | ||||||
If-Modified-Since |
|
× | ||||||
If-Unmodified-Since |
|
× | ||||||
If-Match |
|
× | ||||||
If-None-Match |
|
× |
サーバサイド暗号化で暗号化されたオブジェクトを取得する場合、以下のヘッダを指定します。
名前 | 説明 | 必須 |
---|---|---|
x-iijgio-server-side-encryption-customer-algorithm | オブジェクトの復号に用いるアルゴリズムを指定します。値は”AES256”である必要があります。 | 〇 |
x-iijgio-server-side-encryption-customer-key | オブジェクトの復号に用いる暗号化キーを指定します。Base64でエンコードした値をセットします。暗号化キーの長さはBase64エンコード前で256ビットである必要があります。暗号化キーは対象オブジェクトの暗号化後に速やかに破棄されます。 | 〇 |
x-iijgio-server-side-encryption-customer-key-MD5 | 暗号化キーをMD5(128bit)でダイジェストし、Base64エンコードした値をセットします。暗号化キーが正しく送られて来たかサービス側で検証するために利用します。 | 〇 |
リクエストエレメント¶
この操作ではリクエストエレメントは使用しません。
レスポンス情報¶
レスポンスヘッダー¶
この操作では基本レスポンスヘッダーに加え、以下のヘッダーを返します。
HTTPヘッダー | 説明 | ||
---|---|---|---|
x-iijgio-meta-* |
|
Content-TypeはPUT Object時に指定された値が返されます。 PUT Object時にContent-Typeを指定されなかったオブジェクトについては、”binary/octet-stream”として返されます。
- Rangeヘッダーを指定したリクエストに対しては、レスポンスに以下のヘッダーに正しい値を設定して返します。
Content-Length: xxx Accept-Ranges: yyy Content-Range: start-end/total
取得対象のオブジェクトがサーバサイド暗号化で暗号化されている場合、追加で以下のヘッダを返します。
HTTPヘッダー | 説明 | ||
---|---|---|---|
x-iijgio-server-side-encryption-customer-algorithm |
|
||
x-iijgio-server-side-encryption-customer-key-MD5 |
|
レスポンスエレメント¶
この操作はレスポンスエレメントを返しません。
エラー情報¶
この操作では以下のエラーを返します。
コード | ステータス | 内容 |
---|---|---|
InvalidAccessKeyId | 403 Forbidden | 指定のアクセスキーIDを持つユーザが存在しません。 |
SignatureDoesNotMatch | 403 Forbidden | 指定されたリクエストのシグネチャが一致しません。 |
AccessDenied | 403 Forbidden | オブジェクトに対するREAD権限がありません。 |
NoSuchKey | 404 Not Found | 指定Keyのオブジェクトが存在しません。 |
InvalidRange | 416 Request Range Not Satisfiable | 無効な範囲が指定されています。 |
InvalidArgument | 400 Bad Request |
|
InvalidEncryptionAlgorithmError | 400 Bad Request | x-iijgio-server-side-encryption-customer-algorithに誤った値が指定されています。 |
サンプル¶
- オブジェクトを取得するサンプル
- リクエスト
GET /my-image.jpg HTTP/1.1 Host: bucket.storage-dag.iijgio.com Date: Wed, 28 Oct 2009 22:32:00 GMT Authorization: IIJGIO 02236Q3V0WHVSRW0EXG2:0RQf4/cRonhpaBX5sCYVf1bNRuU=
- レスポンス
HTTP/1.1 200 OK x-iijgio-id-2: eftixk72aD6Ap51TnqcoF8eFidJG9Z/2mkiDFu8yU9AS1ed4OpIszj7UDNEHGran x-iijgio-request-id: 318BC8BC148832E5 Date: Wed, 28 Oct 2009 22:32:00 GMT Last-Modified: Wed, 12 Oct 2009 17:50:00 GMT ETag: "fba9dede5f27731c9771645a39863328" Content-Length: 434234 Content-Type: text/plain Server: storage-dag.iijgio.com [434234 bytes of object data]
- サーバサイド暗号化されたオブジェクトを取得するサンプル
- リクエスト
GET /my-image.jpg HTTP/1.1 Host: bucket.storage-dag.iijgio.com Date: Wed, 28 Oct 2009 22:32:00 GMT Authorization: IIJGIO 02236Q3V0WHVSRW0EXG2:0RQf4/cRonhpaBX5sCYVf1bNRuU= x-iijgio-server-side-encryption-customer-algorithm: AES256 x-iijgio-server-side-encryption-customer-key: MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI= x-iijgio-server-side-encryption-customer-key-md5: dnF5x6K/8ZZRzpfSlMMM+w==
- レスポンス
HTTP/1.1 200 OK x-iijgio-id-2: eftixk72aD6Ap51TnqcoF8eFidJG9Z/2mkiDFu8yU9AS1ed4OpIszj7UDNEHGran x-iijgio-request-id: 318BC8BC148832E5 x-iijgio-server-side-encryption-customer-algorithm: AES256 x-iijgio-server-side-encryption-customer-key-md5: dnF5x6K/8ZZRzpfSlMMM+w== Date: Wed, 28 Oct 2009 22:32:00 GMT Last-Modified: Wed, 12 Oct 2009 17:50:00 GMT ETag: "7510dc34e6d7b31a30bd83c81a570274" Content-Length: 434234 Content-Type: text/plain Server: storage-dag.iijgio.com [434234 bytes of object data]
HEAD Object¶
オブジェクトのメタデータを取得します(オブジェクトそのものは取得しません)。
オブジェクトに対しREAD権限を持たなければ、メタデータを取得することはできません。
匿名ユーザにREAD権限が付与されていれば、Authorizationヘッダーを利用せずにオブジェクトのメタデータを取得することができます。
HEAD操作はGET操作と同じオプションを持ちます。レスポンスボディがないのを除いて、GETのレスポンスと同じです。
リクエスト情報¶
シンタックス¶
HEAD /{object key} HTTP/1.1
Host: {bucket name}.storage-dag.iijgio.com
Date: {date}
Authorization: {authorization string}
リクエストパラメータ¶
この操作ではリクエストパラメータは使用しません。
リクエストヘッダー¶
この操作では基本リクエストヘッダーに加え、以下のヘッダーを使用します。
HTTPヘッダー | 説明 | 必須 | ||||
---|---|---|---|---|---|---|
Range |
|
× | ||||
If-Modified-Since |
|
× | ||||
If-Unmodified-Since |
|
× | ||||
If-Match |
|
× | ||||
If-None-Match |
|
× |
サーバサイド暗号化で暗号化されたオブジェクトを取得する場合、以下のヘッダを指定します。
名前 | 説明 | 必須 |
---|---|---|
x-iijgio-server-side-encryption-customer-algorithm | オブジェクトの復号に用いるアルゴリズムを指定します。値は”AES256”である必要があります。 | 〇 |
x-iijgio-server-side-encryption-customer-key | オブジェクトの復号に用いる暗号化キーを指定します。Base64でエンコードした値をセットします。暗号化キーの長さはBase64エンコード前で256ビットである必要があります。暗号化キーは対象オブジェクトの暗号化後に速やかに破棄されます。 | 〇 |
x-iijgio-server-side-encryption-customer-key-MD5 | 暗号化キーをMD5(128bit)でダイジェストし、Base64エンコードした値をセットします。暗号化キーが正しく送られて来たかサービス側で検証するために利用します。 | 〇 |
リクエストエレメント¶
この操作ではリクエストエレメントは使用しません。
レスポンス情報¶
レスポンスヘッダー¶
この操作では基本レスポンスヘッダーに加え、以下のヘッダーを返します。
HTTPヘッダー | 説明 | ||
---|---|---|---|
x-iijgio-meta-* |
|
||
x-iijgio-missing-meta |
|
取得対象のオブジェクトがサーバサイド暗号化で暗号化されている場合、追加で以下のヘッダを返します。
HTTPヘッダー | 説明 | ||
---|---|---|---|
x-iijgio-server-side-encryption-customer-algorithm |
|
||
x-iijgio-server-side-encryption-customer-key-MD5 |
|
レスポンスエレメント¶
この操作はレスポンスエレメントを返しません。
エラー情報¶
この操作では以下のエラーを返します。
コード | ステータス | 内容 |
---|---|---|
InvalidAccessKeyId | 403 Forbidden | 指定のアクセスキーIDを持つユーザが存在しません。 |
SignatureDoesNotMatch | 403 Forbidden | 指定されたリクエストのシグネチャが一致しません。 |
AccessDenied | 403 Forbidden | オブジェクトに対するREAD権限がありません。 |
NoSuchKey | 404 Not Found | 指定keyのオブジェクトが存在しません。 |
InvalidRange | 416 Request Range Not Satisfiable | 無効な範囲が指定されています。 |
InvalidArgument | 400 Bad Request |
|
InvalidEncryptionAlgorithmError | 400 Bad Request | x-iijgio-server-side-encryption-customer-algorithに誤った値が指定されています。 |
サンプル¶
- オブジェクトのメタデータを取得するサンプル
- リクエスト
HEAD /my-image.jpg HTTP/1.1 Host: bucket.storage-dag.iijgio.com Date: Wed, 28 Oct 2009 22:32:00 GMT Authorization: IIJGIO 02236Q3V0RonhpaBX5sCYVf1bNRuU=
- レスポンス
HTTP/1.1 200 OK x-iijgio-id-2: ef8yU9AS1ed4OpIszj7UDNEHGran x-iijgio-request-id: 318BC8BC143432E5 x-iijgio-version-id: 3HL4kqtJlcpXroDTDmjVBH40Nrjfkd Date: Wed, 28 Oct 2009 22:32:00 GMT Last-Modified: Sun, 1 Jan 2006 12:00:00 GMT ETag: "fba9dede5f27731c9771645a39863328" Content-Length: 434234 Content-Type: text/plain Server: storage-dag.iijgio.com
OPTIONS Object¶
リクエスト情報¶
シンタックス¶
OPTIONS /{object key} HTTP/1.1
Host: {bucket name}.storage-dag.iijgio.com
Origin: {origin}
Access-Control-Request-Method: {HTTP method}
Access-Control-Request-Headers: {HTTP request headers}
リクエストパラメータ¶
この操作ではリクエストパラメータを使用しません。
リクエストヘッダー¶
この操作では基本リクエストヘッダーに加え、以下のヘッダーを使用します。
HTTPヘッダー | 説明 | 必須 | ||||
---|---|---|---|---|---|---|
Origin |
|
○ | ||||
Access-Control-Request-Method |
|
○ | ||||
Access-Control-Request-Headers |
|
× |
リクエストエレメント¶
この操作ではリクエストエレメントは使用しません。
レスポンス情報¶
レスポンスヘッダー¶
この操作では基本レスポンスヘッダーに加え、以下のヘッダーを返します。
HTTPヘッダー | 説明 | ||
---|---|---|---|
Access-Control-Allow-Origin |
|
||
Access-Control-Max-Age |
|
||
Access-Control-Allow-Methods |
|
||
Access-Control-Allow-Headers |
|
||
Access-Control-Expose-Headers |
|
レスポンスエレメント¶
この操作はレスポンスエレメントを返しません。
サンプル¶
- http://www.example.com からPUTメソッドのクロスサイトリクエストのプリフライトをリクエストするサンプル
- リクエスト
OPTIONS /myobject HTTP/1.1 Host: mybucket.storage-dag.iijgio.com Date: Wed, 1 Oct 2014 00:00:00 GMT Origin: http://www.example.com Access-Control-Request-Method: PUT
- レスポンス
HTTP/1.1 200 OK x-iijgio-id-2: eftixk72aD6Ap51TnqcoF8eFidJG9Z/2mkiDFu8yU9AS1ed4OpIszj7UDNEHGran x-iijgio-request-id: 318BC8BC148832E5 Date: Wed, 1 Oct 2014 00:00:00 GMT Access-Control-Allow-Origin: http://www.example.com Access-Control-Allow-Methods: PUT Access-Control-Expose-Headers: x-iijgio-request-id Content-Length: 0 Server: storage-dag.iijgio.com
PUT Object¶
バケットにオブジェクトを追加します。
この操作を行うユーザは、オブジェクトを追加するバケットに対しWRITE権限を付与されていなければなりません。
本サービスはオブジェクトの部分保存は行いません。成功のレスポンスはオブジェクト全体を保存したことを意味します。
同一のオブジェクトに対してほぼ同時に複数の書き込みの要求を受けた場合、最後に書かれた内容で上書きされます。つまり、通信速度やオブジェクトのサイズによってはリクエストの順と異なる場合が発生します。本サービスはオブジェクトをロックする機能は提供していません。
通信時にデータが破損していないことを保証するためにContent-MD5ヘッダーを用います。Content-MD5 を用いることで、あらかじめ計算しておいたMD5ハッシュ値とアップロードしたオブジェクトのMD5ハッシュ値が比較され正しくアップロードされたことを確認できます。また、返されたETagと計算した値を比較することもできます。
Note
- PUT Objectを行う際に認証したユーザはオブジェクト所有者となり、常にREAD_ACPおよびWRITE_ACP権限を保持します。
- オブジェクトのキー名は一連のUnicode文字で、UTF-8にエンコードした時のバイト長の最大サイズは950 Bytesです。
- オブジェクト登録の際に100ms以内の遅延が発生する場合があります。PUT Objectの実行後に、同一オブジェクトに対して連続して操作を行い 404 Not Found が返された場合は、操作のリトライをお願い致します。
Warning
リクエスト情報¶
シンタックス¶
PUT /{object key} HTTP/1.1
Host: {bucket name}.storage-dag.iijgio.com
Date: {date}
Authorization: {authorization string}
リクエストパラメータ¶
この操作ではリクエストパラメータは使用しません。
リクエストヘッダー¶
この操作では基本リクエストヘッダーに加え、以下のヘッダーを使用します。
HTTPヘッダー | 説明 | 必須 | ||||||
---|---|---|---|---|---|---|---|---|
Cache-Control |
|
× | ||||||
Content-Disposition |
|
× | ||||||
Content-Encoding |
|
× | ||||||
Content-MD5 |
|
× | ||||||
Expect |
|
× | ||||||
x-iijgio-meta- |
|
× | ||||||
x-iijgio-website-redirect-location |
|
× |
Access Control List(ACL)の設定¶
Canned ACL で指定する場合¶
HTTPヘッダー | 説明 | 必須 | ||||||
---|---|---|---|---|---|---|---|---|
x-iijgio-acl |
|
× |
詳細に指定する場合¶
より詳細に ACL を設定する場合は以下のリクエストヘッダーを指定してください。
HTTPヘッダー | 説明 | 必須 | ||||
---|---|---|---|---|---|---|
x-iijgio-grant-read |
|
× | ||||
x-iijgio-grant-read-acp |
|
× | ||||
x-iijgio-grant-write-acp |
|
× | ||||
x-iijgio-grant-full-control |
|
× |
設定するアカウントまたはグループはそれぞれtype=value形式で指定します。typeには以下のいずれかを指定できます。
emailAddress: アカウントのメールアドレス
id: アカウントの Show ID
- url: グループを示す以下のURL
- http://acs.dag.iijgio.com/groups/global/AllUsers
- 匿名ユーザも含め、すべてのユーザを表すグループ
x-iijgio-grant-readヘッダーを指定する例:
x-iijgio-grant-read: emailAddress="taro@dag.iijgio.com", emailAddress="jiro@dag.iijgio.com"
サーバサイド暗号化¶
サーバサイド暗号化でオブジェクトを暗号化する場合、以下のヘッダを指定します。
Warning
名前 | 説明 | 必須 |
---|---|---|
x-iijgio-server-side-encryption-customer-algorithm | 暗号化で使用するアルゴリズムを指定します。値は”AES256”である必要があります。 | 〇 |
x-iijgio-server-side-encryption-customer-key | 暗号化で使用する暗号化キーを指定します。Base64でエンコードした値をセットします。暗号化キーの長さはBase64エンコード前で256ビットである必要があります。暗号化キーは対象オブジェクトの暗号化後に速やかに破棄されます。 | 〇 |
x-iijgio-server-side-encryption-customer-key-MD5 | 暗号化キーをMD5(128bit)でダイジェストし、Base64エンコードした値をセットします。暗号化キーが正しく送られて来たかサービス側で検証するために利用します。 | 〇 |
リクエストエレメント¶
この操作ではリクエストエレメントは使用しません。
レスポンス情報¶
レスポンスヘッダー¶
この操作では基本レスポンスヘッダーを返します。
オブジェクトをサーバサイド暗号化で暗号化した場合、追加で以下のヘッダを返します。
HTTPヘッダー | 説明 | ||
---|---|---|---|
x-iijgio-server-side-encryption-customer-algorithm |
|
||
x-iijgio-server-side-encryption-customer-key-MD5 |
|
レスポンスエレメント¶
この操作はレスポンスエレメントを返しません。
エラー情報¶
この操作では以下のエラーを返します。
コード | ステータス | 内容 |
---|---|---|
InvalidAccessKeyId | 403 Forbidden | 指定のアクセスキーIDを持つユーザが存在しません。 |
SignatureDoesNotMatch | 403 Forbidden | 指定されたリクエストのシグネチャが一致しません。 |
AccessDenied | 403 Forbidden | バケットに対するWRITE権限がありません。 |
NoSuchBucket | 404 Not Found | 指定のバケットが存在しません。 |
EntityTooSmall | 400 Bad Request | ファイルが許容最低サイズよりも小さいです。 |
EntityTooLarge | 400 Bad Request | ファイルが許容最大サイズよりも大きいです。 |
KeyTooLong | 400 Bad Request | オブジェクトのkeyが許容サイズを超えています。 |
MetadataTooLarge | 400 Bad Request | メタデータのサイズが許容サイズを超えています。 |
InvalidArgument | 400 Bad Request |
|
InvalidEncryptionAlgorithmError | 400 Bad Request | x-iijgio-server-side-encryption-customer-algorithに誤った値が指定されています。 |
サンプル¶
- オブジェクトmy-image.jpgをバケットmyBucketに追加するサンプル
- リクエスト
PUT /my-image.jpg HTTP/1.1 Host: myBucket.storage-dag.iijgio.com Date: Wed, 12 Oct 2009 17:50:00 GMT Authorization: IIJGIO 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE= Content-Type: text/plain Content-Length: 11434 Expect: 100-continue [11434 bytes of object data]
- レスポンス
HTTP/1.1 100 Continue HTTP/1.1 200 OK x-iijgio-id-2: LriYPLdmOdAiIfgSm/F1YsViT1LW94/xUQxMsF7xiEb1a0wiIOIxl+zbwZ163pt7 x-iijgio-request-id: 0A49CE4060975EAC Date: Wed, 12 Oct 2009 17:50:00 GMT ETag: "1b2cf535f27731c974343645a3985328" Content-Length: 0 Server: storage-dag.iijgio.com
- オブジェクトmy-image.jpgをバケットmyBucketに、サーバサイド暗号化で暗号化しながら追加するサンプル
- リクエスト
PUT /my-image.jpg HTTP/1.1 Host: myBucket.storage-dag.iijgio.com Date: Wed, 12 Oct 2009 17:50:00 GMT Authorization: IIJGIO 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE= x-iijgio-server-side-encryption-customer-algorithm: AES256 x-iijgio-server-side-encryption-customer-key: MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTI= x-iijgio-server-side-encryption-customer-key-md5: dnF5x6K/8ZZRzpfSlMMM+w== Content-Type: text/plain Content-Length: 11434 Expect: 100-continue [11434 bytes of object data]
- レスポンス
HTTP/1.1 100 Continue HTTP/1.1 200 OK x-iijgio-id-2: LriYPLdmOdAiIfgSm/F1YsViT1LW94/xUQxMsF7xiEb1a0wiIOIxl+zbwZ163pt7 x-iijgio-request-id: 0A49CE4060975EAC x-iijgio-server-side-encryption-customer-algorithm: AES256 x-iijgio-server-side-encryption-customer-key-md5: dnF5x6K/8ZZRzpfSlMMM+w== Date: Wed, 12 Oct 2009 17:50:00 GMT ETag: "7510dc34e6d7b31a30bd83c81a570274" Content-Length: 0 Server: storage-dag.iijgio.com
PUT Object (Copy)¶
既に保管されているオブジェクトを複製します。
この操作はGET操作を実行して、次にPUT操作を実行した時と結果は同じです。
リクエストヘッダーにx-iijgio-copy-sourceを加えると、ソースオブジェクトを目的のバケットに複製します。
オブジェクトを複製時に、メタデータとして複製元のメタデータを設定するか、全く新しいメタデータを設定するかを選択できます。複製元のメタデータを設定する場合、メタデータの大部分は保存できますが、ACLは複製されません(デフォルト値としてprivateが設定されます)。
ACLの設定を行う(デフォルト値を無効にする)には、リクエスト生成時にx-iijgio-aclヘッダーを使用し、新たにACLを設定します。
この操作を行うユーザは、コピー元のオブジェクトに対しREAD権限が付与され、コピー先のバケットに対しWRITE権限が付与されていなければなりません。
リクエストヘッダーに特定の条件(ETagがマッチするか、オブジェクトが指定の日時以降(以前)に更新されていないか等)を設定することができます。
リクエストを受信した時点、またはファイルコピーの実行中にエラーを返す可能性があります。リクエスト受信時の場合、標準のエラーコードを返します。実行中のエラーの場合、エラーは200レスポンスの中に埋め込まれます。
リクエスト情報¶
シンタックス¶
PUT /{destination object key} HTTP/1.1
Host: {destination bucket name}.storage-dag.iijgio.com
Date: date
x-iijgio-copy-source: /{source bucket name}/{source object key}
x-iijgio-metadata-directive: {metadata directive}
x-iijgio-copy-source-if-match: {etag}
x-iijgio-copy-source-if-none-match: {etag}
x-iijgio-copy-source-if-unmodified-since: {time stamp}
x-iijgio-copy-source-if-modified-since: {time stamp}
<request metadata>
Authorization: {authorization string}
リクエストパラメータ¶
この操作ではリクエストパラメータは使用しません。
リクエストヘッダー¶
この操作では基本リクエストヘッダーに加え、以下のヘッダーを使用します。
HTTPヘッダー | 説明 | 必須 | ||||||
---|---|---|---|---|---|---|---|---|
x-iijgio-acl |
|
× | ||||||
x-iijgio-copy-source |
|
○ | ||||||
x-iijgio-metadata-directive |
|
× | ||||||
x-iijgio-copy-source-if-match |
|
× | ||||||
x-iijgio-copy-source-if-none-match |
|
× | ||||||
x-iijgio-copy-source-if-unmodified-since |
|
× | ||||||
x-iijgio-copy-source-if-modified-since |
|
× | ||||||
x-iijgio-website-redirect-location |
|
× |
サーバサイド暗号化¶
コピーしたオブジェクトをサーバサイド暗号化で暗号化する場合、以下のヘッダを指定します。
Warning
名前 | 説明 | 必須 |
---|---|---|
x-iijgio-server-side-encryption-customer-algorithm | 暗号化で使用するアルゴリズムを指定します。値は”AES256”である必要があります。 | 〇 |
x-iijgio-server-side-encryption-customer-key | 暗号化で使用する暗号化キーを指定します。Base64でエンコードした値をセットします。暗号化キーの長さはBase64エンコード前で256ビットである必要があります。暗号化キーは対象オブジェクトの暗号化後に速やかに破棄されます。 | 〇 |
x-iijgio-server-side-encryption-customer-key-MD5 | 暗号化キーをMD5(128bit)でダイジェストし、Base64エンコードした値をセットします。暗号化キーが正しく送られて来たかサービス側で検証するために利用します。 | 〇 |
ソースオブジェクト(x-iijgio-copy-sourceで指定したオブジェクト)がサーバサイド暗号化で暗号化されている場合、以下のヘッダを指定します。
名前 | 説明 | 必須 |
---|---|---|
x-iijgio-copy-source-server-side-encryption-customer-algorithm | ソースオブジェクトの復号に用いるアルゴリズムを指定します。値は”AES256”である必要があります。 | 〇 |
x-iijgio-copy-source-server-side-encryption-customer-key | ソースオブジェクトの復号に用いる暗号化キーを指定します。Base64でエンコードした値をセットします。暗号化キーの長さはBase64エンコード前で256ビットである必要があります。暗号化キーは対象オブジェクトの複号後に速やかに破棄されます。 | 〇 |
x-iijgio-copy-source-server-side-encryption-customer-key-MD5 | ソースオブジェクトの暗号化キーをMD5(128bit)でダイジェストし、Base64エンコードした値をセットします。暗号化キーが正しく送られて来たかサービス側で検証するために利用します。 | 〇 |
リクエストエレメント¶
この操作ではリクエストエレメントは使用しません。
レスポンス情報¶
レスポンスヘッダー¶
この操作では基本レスポンスヘッダーを返します。
オブジェクトをサーバサイド暗号化で暗号化した場合、追加で以下のヘッダを返します。
HTTPヘッダー | 説明 | ||
---|---|---|---|
x-iijgio-server-side-encryption-customer-algorithm |
|
||
x-iijgio-server-side-encryption-customer-key-MD5 |
|
コピー元のオブジェクトがサーバサイド暗号化で暗号化されていた場合、追加で以下のヘッダを返します。
HTTPヘッダー | 説明 | ||
---|---|---|---|
x-iijgio-copy-source-server-side-encryption-customer-algorithm |
|
||
x-iijgio-copy-source-server-side-encryption-customer-key-MD5 |
|
レスポンスエレメント¶
この操作では以下のレスポンスエレメントを返します。
名前 | 説明 | ||||
---|---|---|---|---|---|
CopyObjectResult |
|
||||
ETag |
|
||||
LastModified |
|
エラー情報¶
この操作では以下のエラーを返します。
コード | ステータス | 内容 |
---|---|---|
InvalidAccessKeyId | 403 Forbidden | 指定のアクセスキーIDを持つユーザが存在しません。 |
SignatureDoesNotMatch | 403 Forbidden | 指定されたリクエストのシグネチャが一致しません。 |
AccessDenied | 403 Forbidden | Objrctに対するREAD権限がない、またはバケットに対するWRITE権限がありません。 |
NoSuchBucket | 404 Not Found | 指定のバケットが存在しません。 |
NoSuchKey | 404 Not Found | 指定keyのオブジェクトが存在しません。 |
KeyTooLong | 400 Bad Request | オブジェクトのkeyが許容サイズを超えています。 |
InvalidArgument | 400 Bad Request |
|
InvalidEncryptionAlgorithmError | 400 Bad Request | x-iijgio-server-side-encryption-customer-algorith,x-iijgio-copy-source-server-side-encryption-customer-algorithに誤った値が指定されています。 |
サンプル¶
- my-image.jpgを複製し、my-second-image.jpgというキー名でbucketに追加するサンプル
- リクエスト
PUT /my-second-image.jpg HTTP/1.1 Host: bucket.storage-dag.iijgio.com Date: Wed, 28 Oct 2009 22:32:00 GMT x-iijgio-copy-source: /bucket/my-image.jpg
- レスポンス
HTTP/1.1 200 OK x-iijgio-id-2: eftixk72aD6Ap51TnqcoF8eFidJG9Z/2mkiDFu8yU9AS1ed4OpIszj7UDNEHGran x-iijgio-request-id: 318BC8BC148832E5 x-iijgio-copy-source-version-id: 3/L4kqtJlcpXroDTDmJ+rmSpXd3dIb rHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo x-iijgio-version-id: QUpfdndhfd8438MNFDN93jdnJFkdmqnh893 Date: Wed, 28 Oct 2009 22:32:00 GMT Server: storage-dag.iijgio.com <CopyObjectResult> <LastModified>2009-10-28T22:32:00</LastModified> <ETag>9b2cf535f27731c974343645a3985328</ETag> </CopyObjectResult>
POST Object¶
ウェブブラウザベースのアップロード形式で指定のバケットオブジェクトを追加します(PUT Objectの代替手段です)。
PUT ObjectのHTTPヘッダーで渡されていたパラメータは、POSTのmultipart/form-dataでエンコードされたメッセージボディ内のフォームフィールドとして渡されます。
この操作を行うユーザは、オブジェクトを追加するバケットに対しWRITE権限を付与されていなければなりません。
本サービスはオブジェクトの部分的な保存は行いません。成功のレスポンスはオブジェクト全体を保存したことを意味します。
リクエストボディより先にリクエストヘッダーを送信する設定にするには100-continue HTTPステータスコードを使用します。ヘッダー部でメッセージが拒否された場合にはボディは送信されません。
同一のオブジェクトに対し、ほぼ同時に複数の書き込みの要求を受けた場合には最後に書かれた内容で上書きされます。
データが破損していないことを確実にするためにContent-MD5を用います。Content-MD5 を用いることで、あらかじめ計算しておいたMD5ハッシュ値とアップロードしたオブジェクトのMD5ハッシュ値が比較され正しくアップロードされたことを確認できます。本APIもPUT Objectと同様、署名バージョン2、署名バージョン4に対応します。
リクエスト情報¶
シンタックス¶
署名バージョン2
POST /{object key} HTTP/1.1
Host: {destination bucket name}.storage-dag.iijgio.com
User-Agent: {browser data}
Accept: {file types}
Accept-Language: {regions}
Accept-Encoding: {file encoding}
Accept-Charset: {character set}
Keep-Alive: 300
Connection: keep-alive
Content-Type: multipart/form-data; boundary={boundary}
Content-Length: {length}
--{boundary}
Content-Disposition: form-data; name="key"
{destication object key}
--{boundary}
Content-Disposition: form-data; name="success_action_redirect"
{success redirect URL}
--{boundary}
Content-Disposition: form-data; name="Content-Type"
{content type}
--{boundary}
Content-Disposition: form-data; name="x-iijgio-meta-{metadata key}"
{metadata value}
--{boundary}
Content-Disposition: form-data; name="IIJGIOAccessKeyId"
{access key id}
--{boundary}
Content-Disposition: form-data; name="policy"
{encoded policy}
--{boundary}
Content-Disposition: form-data; name="signature"
{signature string}
--{boundary}
Content-Disposition: form-data; name="file"; filename="{file name}"
Content-Type: {file content type}
{file content}
--{boundary}
Content-Disposition: form-data; name="submit"
{Upload to storage-dag.iijgio.com}
--{boundary}--
署名バージョン4
POST /{object key} HTTP/1.1
Host: {destination bucket name}.storage-dag.iijgio.com
User-Agent: {browser data}
Accept: {file types}
Accept-Language: {regions}
Accept-Encoding: {file encoding}
Accept-Charset: {character set}
Keep-Alive: 300
Connection: keep-alive
Content-Type: multipart/form-data; boundary={boundary}
Content-Length: {length}
--{boundary}
Content-Disposition: form-data; name="key"
{destication object key}
--{boundary}
Content-Disposition: form-data; name="success_action_redirect"
{success redirect URL}
--{boundary}
Content-Disposition: form-data; name="Content-Type"
{content type}
--{boundary}
Content-Disposition: form-data; name="x-iijgio-meta-{metadata key}"
{metadata value}
--{boundary}
Content-Disposition: form-data; name="policy"
{encoded policy}
--{boundary}
Content-Disposition: form-data; name="x-iijgio-signature"
{signature string}
--{boundary}
Content-Disposition: form-data; name="x-iijgio-algorithm"
{algorithm string}
--{boundary}
Content-Disposition: form-data; name="x-iijgio-credential"
{credential string}
--{boundary}
Content-Disposition: form-data; name="x-iijgio-date"
{ISO8601 format string}
--{boundary}
Content-Disposition: form-data; name="file"; filename="{file name}"
Content-Type: {file content type}
{file content}
--{boundary}
Content-Disposition: form-data; name="submit"
{Upload to storage-dag.iijgio.com}
--{boundary}--
リクエストパラメータ¶
この操作ではリクエストパラメータは使用しません。
リクエストヘッダー¶
この操作では基本リクエストヘッダーのみ使用します。
フォームフィールド¶
フォームフィールド | 説明 | 必須 | ||||
---|---|---|---|---|---|---|
Cache-Control,Content-Type,Content-Disposition,Content-Encoding |
|
× | ||||
file |
|
× | ||||
key |
|
× | ||||
policy |
|
× | ||||
success_action_redirect,redirect |
|
× | ||||
success_action_status |
|
× | ||||
x-iijgio-meta-* |
|
× |
署名バージョン2を利用する場合、以下のフォームフィールドとpolicyが必須となります。
フォームフィールド | 説明 | 必須 | ||||
---|---|---|---|---|---|---|
IIJGIOAccessKeyId |
|
〇 | ||||
signature |
|
〇 |
署名バージョン4を利用する場合、以下のフォームフィールドとpolicyが必須となります。
フォームフィールド | 説明 | 必須 | ||||
---|---|---|---|---|---|---|
x-iijgio-signature |
|
〇 | ||||
x-iijgiio-algorithm |
|
〇 | ||||
x-iijgiio-credential |
|
〇 | ||||
x-iijgiio-date |
|
〇 |
オブジェクトをサーバサイド暗号化で暗号化する場合、以下のフォームフィールドを追加で指定します。
Warning
フォームフィールド | 説明 | 必須 | ||
---|---|---|---|---|
x-iijgio-server-side-encryption-customer-algorithm | 暗号化で使用するアルゴリズムを指定します。値は”AES256”である必要があります。 | 〇 | ||
x-iijgio-server-side-encryption-customer-key | 暗号化で使用する暗号化キーを指定します。Base64でエンコードした値をセットします。暗号化キーの長さはBase64エンコード前で256ビットである必要があります。暗号化キーは対象オブジェクトの暗号化後に速やかに破棄されます。 | 〇 | ||
x-iijgio-server-side-encryption-customer-key-MD5 |
|
〇 |
レスポンス情報¶
レスポンスヘッダー¶
この操作では基本レスポンスヘッダーのみ返します。
レスポンスエレメント¶
この操作はレスポンスエレメントを返しません。
エラー情報¶
この操作では以下のエラーを返します。
コード | ステータス | 内容 |
---|---|---|
InvalidAccessKeyId | 403 Forbidden | 指定のアクセスキーIDを持つユーザが存在しません。 |
SignatureDoesNotMatch | 403 Forbidden | 指定されたリクエストのシグネチャが一致しません。 |
IncorrectNumberOfFilesInPostRequest | 400 Bad Request | リクエストで複数のファイルが指定されています。 |
MalformedPOSTRequest | 400 Bad Request | ボディがmultipart/form-dataとして正しい形式ではありません。 |
MaxMessageLengthExceeded | 400 Bad Request | リクエストのサイズが長すぎます。 |
MaxpostPreDataLengthExceededError | 400 Bad Request | リクエスト中のファイル指定部分のサイズが大きすぎます。 |
InvalidPolicyDocument | 400 Bad Request | フォームの内容が、policy document 内に定義された条件に合っていません。 |
EntityTooSmall | 400 Bad Request | ファイルが許容最低サイズよりも小さいです。 |
EntityTooLarge | 400 Bad Request | ファイルが許容最大サイズよりも大きいです。 |
KeyTooLong | 400 Bad Request | オブジェクトのkeyが許容サイズを超えています。 |
MetadataTooLarge | 400 Bad Request | メタデータのサイズが許容サイズを超えています。 |
InvalidArgument | 400 Bad Request |
|
InvalidEncryptionAlgorithmError | 400 Bad Request | x-iijgio-server-side-encryption-customer-algorithに誤った値が指定されています。 |
サンプル¶
- リクエスト
POST /Neo HTTP/1.1 Content-Length: 4 Host: quotes.storage-dag.iijgio.com Date: Wed, 01 Mar 2009 12:00:00 GMT Authorization: IIJGIO 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE= Content-Type: text/plain Expect: the 100-continue HTTP status code ObjectContent
- レスポンス
HTTP/1.1 100 Continue HTTP/1.1 200 OK x-iijgio-id-2: LriYPLdmOdAiIfgSm/F1YsViT1LW94/xUQxMsF7xiEb1a0wiIOIxl+zbwZ163pt7 x-iijgio-request-id: 0A49CE4060975EAC x-iijgio-version-id: default Date: Wed, 12 Oct 2009 17:50:00 GMT ETag: "1b2cf535f27731c974343645a3985328" Content-Length: 0 Connection: close
DELETE Object¶
指定のオブジェクトを削除します。
リクエスト情報¶
シンタックス¶
DELETE /{object key} HTTP/1.1
Host: {bucket name}.storage-dag.iijgio.com
Date: {date}
Authorization: {authorization string}
リクエストパラメータ¶
この操作ではリクエストパラメータは使用しません。
リクエストヘッダー¶
この操作では基本リクエストヘッダーのみ使用します。
リクエストエレメント¶
この操作ではリクエストエレメントは使用しません。
レスポンス情報¶
レスポンスヘッダー¶
この操作では基本レスポンスヘッダーのみ返します。
レスポンスエレメント¶
この操作はレスポンスエレメントを返しません。
エラー情報¶
この操作では以下のエラーを返します。
コード | ステータス | 内容 |
---|---|---|
InvalidAccessKeyId | 403 Forbidden | 指定のアクセスキーIDを持つユーザが存在しません。 |
SignatureDoesNotMatch | 403 Forbidden | 指定されたリクエストのシグネチャが一致しません。 |
AccessDenied | 403 Forbidden | アクセス権限がありません。 |
NoSuchBucket | 404 Not Found | 指定されたオブジェクトが属するバケットが存在しません。 |
オブジェクトが存在しない(オブジェクトが既に削除されている)場合は 204 No Content を返します。
サンプル¶
- オブジェクトを削除するサンプル
- リクエスト
DELETE /my-second-image.jpg HTTP/1.1 Host: bucket.storage-dag.iijgio.com Date: Wed, 12 Oct 2009 17:50:00 GMT Authorization: IIJGIO 15B4D3461F177624206A:xQE0diMbLRepdf3YB+FIEXAMPLE=
- レスポンス
HTTP/1.1 204 NoContent x-iijgio-id-2: LriYPLdmOdAiIfgSm/F1YsViT1LW94/xUQxMsF7xiEb1a0wiIOIxl+zbwZ163pt7 x-iijgio-request-id: 0A49CE4060975EAC Date: Wed, 12 Oct 2009 17:50:00 GMT Content-Length: 0 Server: storage-dag.iijgio.com