Object Storage APIリファレンス

本マニュアルでは、 Cloudn Object StorageのAPIご利用方法に関してご説明いたします。
右上の “索引” や、右のバーにある検索にて検索が可能です。

1. Cloudn APIについて

Cloudn では、各プロダクトごとにAPIを提供しております。
APIを使用することで、コントロールパネルを介さずにお客様のプログラムから直接リソースを操作することが可能です。

以下、 Cloudn Object StorageのAPIについてご説明いたします。

1.1. Cloudn APIについて

Cloudn では、各プロダクトごとにAPIを提供しております。
APIを使用することで、コントロールパネルを介さずにお客様のプログラムから直接リソースを操作することが可能です。

ご利用にあたっては下記の通りの情報/前提知識が必要となります。

API共通情報

以下、3つの情報がAPIを利用するにあたり必要となります。

  • アクセスキーID
  • 秘密鍵
  • APIエンドポイント

以下の2つを Cloudn ポータルよりログインし、入手します。

  • アクセスキーID

    • APIへのアクセスにおいて、お客様個人のIDを識別するためのキーです。
    • お客様固有のものとなります
  • 秘密鍵

    • APIへのアクセスにおいて、電子署名に利用される鍵です。
    • お客様固有のものとなります

APIエンドポイントについては、各 Cloudn サービスごとに異なります。 下記を参照してください。

API情報 ( Cloudn Object Storage)

アクセスキーID・秘密鍵入手方法

Cloudn ポータルへログイン

下記URLより、パスワード/IDでログインをします。

https://portal.cloudn-service.com/comgi/login

画面下部”APIアクセスキー・秘密鍵管理”をクリック

画面下部に存在する”APIアクセスキー・秘密鍵管理”をクリックします。

ポータルから秘密鍵へのリンク

Cloudn ポータル最下段、アクセスキーID・秘密鍵管理画面へのリンク

Query API->アクセスキーID・秘密鍵をコピーして利用

アクセスキーID・秘密鍵をコピーして利用します。

アクセスキーID・秘密鍵管理画面キャプチャ

アクセスキーID・秘密鍵管理画面

1.2. API情報 ( Cloudn Object Storage)

Object Storageサービスにて提供しているAPI Server (End Point)のURIは下記となります。

https://str.cloudn-service.com/

注釈

API リクエスト・レスポンスは”HTTPS”, もしくは”HTTP”がサポートされます。 HTTPをご利用の場合は上記の”https”を”http”に変更してください。

[参考]前提知識

Cloudn Object Storageについて

Cloudn Object Storageの操作・機能については 操作マニュアル を参照してください。

APIの利用方法について

APIを利用するには、クライアントと呼ばれるツールを利用する方法、
もしくはお客様プログラム上において仕様にしたがってAPIを利用する方法が一般的です。

以下、APIクライアントを利用した利用例・プログラム上でAPIを利用するために必要なリクエストの作成例を示します。

注釈

APIのご利用にあたっては、ご利用前に、 Cloudn ポータルより サービスを「利用中」の状態にする必要があります。

1.3. APIクライアントの利用

警告

本章はWebサーバの設定など、サポート対象外の部分の記述を多く含みます。 必ずお客様ご自身で編集前設定のバックアップや設定項目の理解をされた上でのご実施をお願い致します。 また、本ソフトウェアに関しては、あくまで記載した環境での動作を確認したものを掲載しております。オープンソースソフトウェアに関する記載が含まれており、弊社では動作保証などをいたしかねますこと、予めご了承ください。

概要

Cloudn Object Storageでは、Amazon Web Services S3 (以下S3) 互換APIを提供しており、
S3を操作するためのクライアントである下記のツールなどが利用可能です。
  • s3cmd [1]

    • Object Storageを利用するためのCUIクライアントです
以下、基本的な操作をコマンドラインより実施可能な、s3cmd (version 1.5.2)のセットアップ方法を示します。

s3cmdの利用

PyPIのインストール

PyPIとは、python.orgの提供するpython言語用のソフトウェアレポジトリです。 こちらを用いることで、s3cmdのインストールが簡単にできるようになります。

CentOS6.X系を例として、PyPIをセットアップします。

# yum -y install python python-setuptools
# easy_install pip
s3cmdのダウンロード、セットアップ

s3cmdをPyPIよりインストールします。

pip install s3cmd

s3cmdの設定ファイルを作製します。

s3cmd --configure

設定ファイルを対話式で設定するチュートリアルが開始されますので、 お客様環境に合わせ入力します。

Access Key : アクセスキーIDを入力しEnter
Secret Key: 秘密鍵を入力しEnter
Encryption password: (任意の文字列を入力しEnter)
Path to GPG program [/usr/bin/gpg]: (そのままEnter)
Use HTTPS protocol [No]: Y
Test access with supplied credentials? [Y/n] n
Save settings? [y/N] y

エディタでs3cmdの設定ファイルを編集します。

vim ~/.s3cfg

以下のうち、ハイライトされた部分を編集します。

  • 19, 20行目

  • 39行目

    • 該当行がなければ追加する
    • Signature Version 2互換性のあるAPIを採用しているためTrue
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
[default]
access_key = APIAccessKey
bucket_location = US
cloudfront_host = str.cloudn-service.com
cloudfront_resource = /2010-07-15/distribution
default_mime_type = binary/octet-stream
delete_removed = False
dry_run = False
encoding = UTF-8
encrypt = False
follow_symlinks = False
force = False
get_continue = False
gpg_command = /usr/local/bin/gpg
gpg_decrypt = %(gpg_command)s -d --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s
gpg_encrypt = %(gpg_command)s -c --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s
gpg_passphrase =
guess_mime_type = True
host_base = str.cloudn-service.com
host_bucket = %(bucket)s.str.cloudn-service.com
human_readable_sizes = False
list_md5 = False
log_target_prefix =
preserve_attrs = True
progress_meter = True
proxy_host =
proxy_port = 0
recursive = False
recv_chunk = 4096
reduced_redundancy = False
secret_key = SecretKey
send_chunk = 4096
simpledb_host = str.cloudn-service.com
skip_existing = False
socket_timeout = 300
urlencoding_mode = normal
use_https = True
verbosity = WARNING
signature_v2 = True

設定が終わったら、コマンドを利用可能です。

動作の確認

ここでは、 GET Service - バケット情報取得 を利用し、 現在保持しているバケットの一覧を取得し動作を確認します。

$ s3cmd ls

s3cmdの詳細な利用方法については、公式ドキュメントs3cmd -h で表示されるヘルプを参照してください。

脚注

[1]GNU GENERAL PUBLIC LICENSEで配布されるOSSソフトウェアです。AWS S3 API準拠のAPIに対し利用が可能です。

1.4. リクエストの仕様・作成方法

APIクライアントなどを使用せずにAPIリスクエストを利用する方法を示します。

APIリクエスト形式

Cloudn Object Storageサービスのリクエストは、REST形式となります。
例えば、本サービスによってバケットの一覧を取得する、”GET Service” API リクエストは、以下のようになります。
GET / HTTP/1.1
Host: str.cloudn-service.com
Date: Fri, 29 Aug 2014 02:37:24 +0000
Authorization: AWS APIKEYEXAMPLEZ1GC:fb1IxbtjVuoW7Zts9lSsXXW1RVw=
共通リクエストヘッダ

下記にREST API Requestにおいて用いるHeader形式を示します。

Common Request Header
ヘッダー名 説明
Authorization
認証に用いる署名を設定する。
形式は,${APIKey}をAPIアクセスキー、${Signature}を署名とすると、
AWS ${APIkey}:${Signature} の通り。
Content-Length
ヘッダーを除いたリクエストの長さ(Byte)。
このヘッダーはXMLをアップロードするPUT Requestで必要となる。
Content-MD5
ヘッダーを除いたリクエストの128 bit MD5値をbase64でエンコードしたものを指定する。
この値は、リクエストの完全性 (送信者が送信したリクエストが送信時のものに等しいか) を
チェックする目的で利用される。
Date
リクエスト送信時の日時を指定する。
Expect
100-continueを指定した場合、Acknowledgementがかえるまで、Bodyを送信しない。
Response HeaderによってRejectメッセージを受取った場合、Bodyは送信しない。
- 有効値: 100-continue
Host
パス形式、もしくはVirtualHost形式で指定をする。
- パス形式: str.cloudn-service.com
- VirtualHost形式: ${バケット名}.str.cloudn-service.com
共通レスポンスヘッダ
Common Response Header
ヘッダー名 説明
Content-Length
レスポンスのBodyの長さ(Byte)
Default: None
Connection
サーバーとの間のコネクションがopenなのかclosedなのかを返す
有効値: (open|close)
Default: None
Date
レスポンス送信時の日時が返される
Default: None
ETag
オブジェクトのEntity Tag。
PUT Objectのオペレーションで作成された場合は、MD5の16進数での標記となる。
それ以外の場合はオブジェクトのmd5値もしくは、16進数以外の文字。
Server
Responseを送信したサーバの名前
x-amz-delete-marker
デリートマーカーがついているか否か
有効値: (true|false)
Default: false
x-amz-request-id
リクエストを識別するためのユニークな値。Cloudn Object Storageサービス側で生成し指定される
x-amz-version-id
オブジェクトのバージョン。
Versioningを有効にしている場合、Object Storageによりオブジェクトがバケットに追加される際に、
ランダムに生成された文字列が指定され、レスポンスで返される
Versioningの機能が有効になっていない場合、常に null が返される
有効値: (null|any URL-ready|UTF-8 encoded string)
Default: null

APIリクエストの作成方法

以下、上記のリクエストを例に、Cloudn Object Storage APIへのリクエストの生成方法を解説します。
Cloudn Object Storage APIのリクエスト形式は、一般的なHTTPのリクエストと同様に、以下のようになります。
Request Mehtod Path(?query string) Protocol Version
(Header)
(Header)
(......)
(Body)
APIリクエストの署名
API リクエストの認証が必要となるため、HTTPリクエストに認証ヘッダ(ヘッダ名:Authorization)を含める必要があります。
Object Storage APIリクエストの認証には、リクエストに “Authorization” HTTPヘッダーを用います。

“Authorization” 拡張HTTPヘッダーに格納する値の書式は以下の通りです。
${APIKey} : アクセスキーID, ${Signature} : 署名として下記に示します。
AWS ${APIkey}:${Signature}
Cloudn Object Storage APIのリクエストの認証は、 “アクセスキーID” と、
それと対になる “秘密鍵” によって生成されたKeyed-Hashによる署名(Keyed-HMAC)によって行われます。

上記の<APIアクセスキー>には、事前に取得したアクセスキーIDの値を、
<署名の値>には、HMAC-SHA1の電子署名アルゴリズムを用いて作成した電子署名をBase64でエンコードした値を含めます。
APIリクエストの署名作成方法
次に、Signatureに格納する “<署名の値>” の作成方法の作成方法について説明します。
電子署名の作成は、以下の順番で実施します。
  1. 電子署名対象の文字列の決定
  2. 電子署名の作成と、Base64エンコード

以下、下記のリクエストを例に署名を作成する例を元に手順を説明します。 ベースとなるHTTP Request(以下、ベースリクエストと呼ぶ)を以下とします。

GET /sample/object.jpg HTTP/1.1
Host: str.cloudn-service.com
Date: Thu, 18 Oct 2012 03:14:30 +0000
署名対象文字列の作成
まず、署名対象文字列を生成します。
署名対象文字列の形式は以下の通りです。
${HTTPMethod}
${Content-MD5}
${Content-Type}
${Date}
${CanonicalizedExtendedHeader}${CanonicalizedResource}

ここで示す各変数は以下の通りです。

  • ${HTTPMethod}

    • HTTPメソッド名が入ります
    • 上記のベースリクエスト例では”GET”となります
  • ${Content-MD5}

    • Content MD5の値が入ります
    • 上記のベースリクエスト例では存在しないため、”” + “\n” , つまり空行となります
  • ${Content-Type}

    • Content Typeの値が入ります
    • 上記のベースリクエスト例では存在しないため、”” + “\n” , つまり空行となります
  • ${Date}

    • 日付が入ります

    • 上記のベースリクエスト例では、”Thu, 18 Oct 2012 03:14:30 +0000”となります

    • 最後に改行が入ります

      • つまり ${CanonicalizedResource}, ${CanonicalizedExtendedHeader} が空であったとしても、空白行を後ろに追加する必要があります
  • ${CanonicalizedExtendedHeader}

    • 正規化済拡張ヘッダが入ります
    • 上記のベースリクエスト例では存在しないため、”“、つまり何も入れないとなります
  • ${CanonicalizedResource}

    • 正規化済みリソースURIが入ります
    • 上記のベースリクエスト例では、 “/sample/object.jpg” となります
以下、署名対象文字列の作成方法を順番に説明します。

署名対象文字列は”${HTTPMethod}”+”¥n”から始まります。
上記ベースリクエストでは、HTTPリクエストメソッドは、”GET”です。
この時点で、ベースリクエストの例での証明対象文字列は、以下のとおりです。
GET\n
\n
次に、ベースリクエストのヘッダーに、”Content-MD5”ならびに、”Content-Type”ヘッダーが
含まれている場合、その値を含めて署名対象文字列とします。
そうでない場合、先に示した通り空白文字列と改行となります。

上記の例では”Content-MD5”, “Content-Type”が含まれていないため、以下のような例となります。
GET\n
\n
\n

次に、日付を加えます。 日付フォーマット(strptime)は以下の通りです。

%a, %d %b %Y %H:%M:%S +0000
日付を加えた際は以下の通りです。
先ほどと同様、日付の後に改行が必要となります。
GET


Thu, 18 Oct 2012 03:14:30 +0000
最後に、正規化済み拡張ヘッダ、と正規化済みリソースを加えます。
ここで言及する正規化済み拡張ヘッダの作成方法は以下の通りです。
  • [正規化済み拡張ヘッダの作成]

    1. 拡張ヘッダの大文字を小文字に変換

      • “X-Amz-Acl” であれば “x-amz-acl” へ変換
    2. 拡張ヘッダ郡をアルファベット順 (昇順) へ並び替える

    3. 同名の拡張ヘッダは ”,” を利用し式を1つにまとめる

      • “x-amz-meta-username: Apple”および”x-amz-meta-username: Bit” が存在した場合
      • “x-amz-meta-username: Apple,Bit” となる
    4. 拡張ヘッダが複数行の場合、空白文字列/改行文字を ” ” (1 byte space) に置き換えて1行とする

    5. 拡張ヘッダと値の間の空白文字列は取り除く

      • “x-amz-meta-username: Apple” であれば以下のようになる
      • “x-amz-meta-username:Apple”
    6. 改行文字列 “\n” (U+000A) を各拡張ヘッダへ追加する

  • [正規化済みリソースの作成]

    1. HTTPホストヘッダーを使用してバケット名が指定されているリクエスト(VirtualHost形式)はバケット名の前に “/” を付ける

      • 例: “Host: sample.str.cloudn-service.com” の場合 “/sample”
      • パス形式のリクエスト(ホストヘッダーが “str.cloudn-service.com”)の場合は何も行わない
    2. HTTPリクエストURIのパス部分を追加する

      • パス形式の場合、 “/sample/object.jpg”
      • VirtualHost形式の場合、 “/object.jpg”
    3. サブリソース文字列を処理するリクエストの場合は、”?”, サブリソース名, およびサブリソースの値(サブリソースの値は存在する場合) を追加

      • サブリソース: ”?versioning”、”?acl” を指す

      • サブリソースが複数ある場合、アルファベット順 (昇順) で並べ替え、 “&” で区切る

      • 例: ”?acl&versionId=value”

      • サブリソースとして指定可能な値は以下

        • acl
        • policy
        • uploadId
        • uploads
        • versionId
        • versioning
        • versions

上記のベースリクエスト例では、それぞれ、以下のようになります。

  • 正規化済み拡張ヘッダ

    • “”
    • 存在しません
  • 正規化済みリソース

    • “/sample/object.jpg”

よって、署名対象文字列は、以下になります。

GET


Thu, 18 Oct 2012 03:14:30 +0000
/sample/object.jpg

注釈

/sample/object.jpgの後ろには改行は含まれません

署名の作成
署名対象文字列を用いて署名を作成します。
署名対象文字列へ、HMAC-SHA1のメッセージダイジェストを取得し、
Base64でエンコードします。

上記の署名対象文字列を秘密鍵”SAMPLESECRETKEY”を用いてエンコードした場合、署名は以下の通りです。

署名

911TCJqs55cbEH0LPxbGIPTJKsA=
リクエストの作成

上記で作成した署名, APIアクセスキー(“APIKEYSAMPLE”とします)を用い、 “Authorization” ヘッダをベースリクエストに加えると完成です。

GET /sample/object.jpg HTTP/1.1
Host: str.cloudn-service.com
Date: Thu, 18 Oct 2012 03:14:30 +0000
Authorization: AWS APIKEYSAMPLE:911TCJqs55cbEH0LPxbGIPTJKsA=

上記をリクエストヘッダとして、エンドポイントに送信すれば完了です。

APIリクエストサンプル

各種APIのページを参照してください。

2. Object Storage (Amazon Web Service S3互換) API

Object StorageのAPI (Amazon Web Service S3互換) について説明します。

2.1. バケット操作

Object Storageのバケットを操作するためのAPIについて説明します

GET Service - バケット情報取得

概要

所持しているすべてのバケット情報を取得します。

リクエスト
リクエストメソッド
  • GET
リクエストパス
  • 必ず “/” を指定します。
リクエストパラメータ
  • 無し
Body
  • 無し
レスポンス
レスポンス (Body)
  • 形式:XML
Response(Body)
Node名 説明 子Node(親Node)
ListAllMyBucketsResult Responseのコンテナ Owner, Buckets (None)
Owner Bucket Ownerの情報を格納したコンテナ ID, DisplayName (ListAllMyBucketsResult)
ID Bucket OwnerのUser ID None (ListAllMyBucketsResult.Owner)
DisplayName Bucket Ownerの表示名 None (ListAllMyBucketsResult.Owner)
Buckets 1個以上のバケットの情報を格納するコンテナ Bucket (ListAllMyBucketsResult)
Bucket 1個のバケットの情報を格納するコンテナ Name (ListAllMyBucketsResult.Buckets)
Name バケット名 None (ListAllMyBucketsResult.Buckets.Bucket)
CreationDate バケットの作成日時 None (ListAllMyBucketsResult.Buckets.Bucket)
サンプルAPIコール & レスポンス
サンプルAPIコール

バケット一覧を表示します

  • Request Header
GET / HTTP/1.1
Host: str.cloudn-service.com
Date: Fri, 29 Aug 2014 02:16:17 +0000
Authorization: AWS SAMPLEAPIKEY2180912n:fb1IxbtjVuoW7Zts9lSsXXW1RVw=
  • 署名対象文字列
GET


Fri, 29 Aug 2014 02:16:17 +0000
/
サンプルAPIレスポンス
  • HTTPレスポンス (Header)
HTTP/1.1 200 OK
  • HTTPレスポンス (Body)
<?xml version="1.0" encoding="UTF-8"?>
<ListAllMyBucketsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <Owner>
        <ID>cln1000000001|cln1000000001</ID>
        <DisplayName>cln1000000001</DisplayName>
    </Owner>
    <Buckets>
        <Bucket>
            <Name>example</Name>
            <CreationDate>2014-08-29T02:15:16.618Z</CreationDate>
        </Bucket>
    </Buckets>
</ListAllMyBucketsResult>

GET Bucket - バケット内のオブジェクトの一覧を取得

概要

バケット内のオブジェクトの一覧を取得します。

リクエスト
リクエストメソッド
  • GET
リクエストパス
  • パス形式の場合
    • “/${バケット名}”
  • VirtualHost形式の場合
    • “/”
リクエストパラメータ
パラメーター名 説明 Required
delimiter [1]
指定した文字列により、Responseに含まれるKeyを2分割し、
前方一致でKeyに共通する部分をPrefixとして抽出する
- Type : String
- Default : None
No
marker [1]
指定した文字列をpivotとして、keyの値がpivot以降のものを、アルファベット順に並べる
- Type : String
- Default : None
No
max-keys [1]
Responseに含まれるKeyの数の上限値を設定する。
上限を超えた場合は、Response中のIsTruncated の値がTrueで返される。
- Type : String
- Default : 1000
No
prefix [1]
指定した文字列で始まるkeyを持つオブジェクトだけを、responseに含める。
- Type : String
- Default : None
No

脚注

[1](1, 2, 3, 4) 署名対象文字列には加わりません。
Body
  • 無し
レスポンス
レスポンス (Body)
  • 形式:XML
Response(Body)
Node名 説明 子Node (親Node)
ListBucketResult Responseのコンテナ Name, Prefix, Marker, MaxKeys, IsTruncated, Contents (None)
Name バケット名 (ListBucketResult)
Prefix リクエスト時に指定したPrefix None (ListBucketResult)
Marker リクエスト時に指定したMarker None (ListBucketResult)
MaxKeys リクエスト時に指定したMax-Keysの値。 指定しなかった場合は、Default値 1000が返る。 None (ListBucketResult)
IsTruncated 結果が切り捨てられているかどうかを、 boolean で提示。 MaxKeysを超えた場合に、Trueとなる。 None (ListBucketResult)
Contents オブジェクトのメタデータを格納するコンテナ Key, LastModified, StorageClass, Size, Etag, Owner (ListBucketResult)
Key オブジェクトのKey None (ListBucketResult.Contents)
LastModified 最終更新日時 None (ListBucketResult.Contents)
StorageClass 常にSTANDARDを返す None (ListBucketResult.Contents)
Size オブジェクトのサイズ (単位: Byte) None (ListBucketResult.Contents)
ETag オブジェクトのMD5 Hash値。 変更の有無を反映するだけであり、オブジェクトのメタデータではない。 None (ListBucketResult.Contents)
Owner オブジェクトのオーナの情報を格納するコンテナ ID, DisplayName (ListBucketResult.Contents)
ID オブジェクトのオーナーのID None (ListBucketResult.Contents.Owner)
DisplayName オブジェクトのオーナーのディスプレイネーム None (ListBucketResult.Contents.Owner)
CommonPrefixes Delimiterをリクエストに指定し、 Delimiterを基準とした前方をCommon Prefixとするが、 そのCommon Prefixを格納するコンテナ Prefix (ListBucketResult)
Prefix Common Prefixで見つかったPrefixを格納する None (ListBucketResult.CommonPrefixes)
サンプルAPIコール & レスポンス
サンプルAPIコール

“example” バケットの情報を取得します。

  • Request Header
GET /example HTTP/1.1
Host: str.cloudn-service.com
Date: Fri, 29 Aug 2014 02:16:17 +0000
Authorization: AWS SAMPLEAPIKEY2180912n:fb1IxbtjVuoW7Zts9lSsXXW1RVw=
  • 署名対象文字列
GET


Fri, 29 Aug 2014 02:16:17 +0000
/example
サンプルAPIレスポンス
  • HTTPレスポンス (Header)
HTTP/1.1 200 OK
  • HTTPレスポンス (Body)
<?xml version="1.0" encoding="UTF-8"?>
<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <Name>example</Name>
    <Prefix/>
    <Marker/>
    <MaxKeys>1000</MaxKeys>
    <IsTruncated>false</IsTruncated>
    <Contents>
        <Key>exmple.txt</Key>
        <LastModified>2014-08-29T04:56:25.116Z</LastModified>
        <StorageClass>STANDARD</StorageClass>
        <Size>0</Size>
        <ETag>&quot;d41d8cd98f00b204e9800998ecf8427e&quot;</ETag>
        <Owner>
            <ID>cln1000000001|cln1000000001</ID>
            <DisplayName>cln1000000001</DisplayName>
        </Owner>
    </Contents>
</ListBucketResult>

HEAD Bucket - バケットの存在を確認

概要
バケットの存在と、それに対するアクセス権の有無を確認するのに有益なコマンドです。
バケットが存在し、且つ、アクセス権がある場合は、”200 OK” を返し、それ以外の場合は、”403 Forbidden” を返します。
リクエスト
リクエストメソッド
  • HEAD
リクエストパス
  • パス形式の場合
    • “/${バケット名}”
  • VirtualHost形式の場合
    • “/”
リクエストパラメータ
  • 無し
Body
  • 無し
レスポンス
レスポンス (Body)
  • 無し
サンプルAPIコール & レスポンス
サンプルAPIコール

バケット “exmaple” バケットのメタデータを取得します。

  • Request Header
HEAD /example HTTP/1.1
Host: str.cloudn-service.com
Date: Fri, 29 Aug 2014 02:16:17 +0000
Authorization: AWS SAMPLEAPIKEY2180912n:fb1IxbtjVuoW7Zts9lSsXXW1RVw=
  • 署名対象文字列
HEAD


Fri, 29 Aug 2014 02:16:17 +0000
/example
サンプルAPIレスポンス
  • HTTPレスポンス (Header)
HTTP/1.1 200 OK
Date: Fri, 29 Aug 2014 05:09:50 GMT
x-amz-request-id: B43CA7402F3A11E4
Last-Modified: Fri, 29 Aug 2014 11:15:16 JST
Content-Length: 0

PUT Bucket - バケット作成

概要

バケットを作成します。

リクエスト
リクエストメソッド
  • PUT
リクエストパス
  • パス形式の場合
    • “/${バケット名}”
  • VirtualHost形式の場合
    • “/”
リクエストパラメータ
  • 無し
Body
  • 形式:XML
Body
Node名 説明 子Node (親Node) Required
CreateBucketConfiguration バケット設定を格納するためのコンテナ LocationConstraint (None) No
LocationConstraint サポートされないパラメーターです (CreateBucketConfiguration) No
レスポンス
レスポンス (Body)
  • 無し
サンプルAPIコール & レスポンス
サンプルAPIコール

バケット “exmaple” を作成します。

  • Request Header
PUT / HTTP/1.1
Host: example.str.cloudn-service.com
Date: Fri, 29 Aug 2014 02:16:17 +0000
Authorization: AWS SAMPLEAPIKEYGC:fYEM5eJBvXFw/dJH4aacp1+TpDY=
Content-Length: 0
  • 署名対象文字列
PUT


Fri, 29 Aug 2014 02:16:17 +0000
/example/
サンプルAPIレスポンス
  • HTTPレスポンス
HTTP/1.1 200 OK

DELETE Bucket - バケット削除

概要
バケットを削除します。
ただし、バケットを削除する前に、すべてのオブジェクト(すべてのバージョンのオブジェクト、ならびに、”Delete マーカー”がついたものを含め)を、事前に削除しておく必要があります。
リクエスト
リクエストメソッド
  • DELETE
リクエストパス
  • パス形式の場合
    • “/${バケット名}”
  • VirtualHost形式の場合
    • “/”

参考

以下のAPIで所持しているバケットを確認可能です。

リクエストパラメータ
  • 無し
Body
  • 無し
レスポンス
レスポンス (Body)
  • 無し
サンプルAPIコール & レスポンス
サンプルAPIコール

バケット “exmaple” バケットを削除します。

  • Request Header
DELETE /example HTTP/1.1
Host: str.cloudn-service.com
Date: Fri, 29 Aug 2014 02:16:17 +0000
Authorization: AWS SAMPLEAPIKEY2180912n:W/+vwz3gRcfoVwZJcAsCHbQ6fJs=
  • 署名対象文字列
DELETE


Fri, 29 Aug 2014 02:16:17 +0000
/example
サンプルAPIレスポンス
  • HTTPレスポンス (Header)
HTTP/1.1 204 No Content
Date: Fri, 29 Aug 2014 02:16:17 GMT
x-amz-request-id: 29F8F1705FFE11E4
  • HTTPレスポンス (Body)

    • なし

GET Bucket ACL - バケットのACL取得

概要

バケットのACLを取得します。

リクエスト
リクエストメソッド
  • GET
リクエストパス
  • パス形式の場合
    • “/${バケット名}”
  • VirtualHost形式の場合
    • “/”
リクエストパラメータ
リクエストパラメータ一覧
パラメーター名 説明 Required
acl ACL(Access Control List)を意味するリクエストパラメーター。 署名対象文字列として評価する必要がある。 Yes
Body
  • 無し
レスポンス
レスポンス (Body)
  • 形式:XML
Response(Body)
Node名 説明 子Node(親Node)
AccessControlPolicy Responseのコンテナ Owner, AccessControlList (None)
Owner Ownerの情報を格納するコンテナ ID, DisplayName (AccessControlPolicy)
ID OwnerのアカウントID None (AccessControlPolicy.Owner)
DisplayName Ownerのディスプレイネーム None (AccessControlPolicy.Owner)
AccessControlList ACLの情報を格納するコンテナ Grant (AccessControlPolicy)
Grant アクセス権の被譲渡者と、 パーミッションを格納するコンテナ Grantee (AccessControlPolicy.AccessControlList)
Grantee アクセス権の被譲渡者の情報を格納するコンテナ ID, DisplayName (AccessControlPolicy.AccessControlList.Grant)
ID アクセス権の被譲渡者のID None (AccessControlPolicy.AccessControlList.Grant.Grantee)
DisplayName アクセス権の被譲渡者のディスプレイネーム None (AccessControlPolicy.AccessControlList.Grant.Grantee)
Permission パーミッション None (AccessControlPolicy.AccessControlList.Grant.Grantee)
サンプルAPIコール & レスポンス
サンプルAPIコール

バケット “exmaple” のACLを取得します。

  • Request Header
GET /example?acl HTTP/1.1
Host: str.cloudn-service.com
Date: Fri, 29 Aug 2014 02:16:17 +0000
Authorization: AWS SAMPLEAPIKEY2180912n:fb1IxbtjVuoW7Zts9lSsXXW1RVw=
  • 署名対象文字列
GET


Fri, 29 Aug 2014 02:16:17 +0000
/example/?acl
サンプルAPIレスポンス
  • HTTPレスポンス (Header)
HTTP/1.1 200 OK
  • HTTPレスポンス (Body)
<?xml version="1.0" encoding="UTF-8"?>
<AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <Owner>
        <ID>cln1000000001|cln1000000001</ID>
        <DisplayName>cln1000000001</DisplayName>
    </Owner>
    <AccessControlList>
        <Grant>
            <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser">
                <ID>cln1000000001|cln1000000001</ID>
                <DisplayName>cln1000000001</DisplayName>
            </Grantee>
            <Permission>FULL_CONTROL</Permission>
        </Grant>
        <Grant>
            <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group">
                <URI>http://acs.amazonaws.com/groups/global/AllUsers</URI>
            </Grantee>
            <Permission>READ</Permission>
        </Grant>
    </AccessControlList>
</AccessControlPolicy>

PUT Bucket ACL - バケットにACLを設定

概要

バケットにACLを設定します。

リクエスト
リクエストメソッド
  • PUT
リクエストパス
  • パス形式の場合
    • “/${バケット名}”
  • VirtualHost形式の場合
    • “/”
リクエストパラメータ
リクエストパラメータ一覧
パラメーター名 説明 Required
acl 進行中のバージョンを取得するための、リクエストパラメータ。署名対象文字列として評価する。 Yes
Body
Request(Body)
Node名 説明 子node(親node) Required
AccessControlPolicy Request コンテナ Owner, AccessControlList (None) Yes
Owner Objectのオーナー情報を格納するコンテナ ID, DisplayName (AccessControlPolicy) Yes
(Owner).ID ObjectのオーナーのID None (Owner) Yes
(Owner).DisplayName Objectのオーナーのディスプレイネーム None (Owner) Yes
AccessControlList ACLの情報を格納するコンテナ Grant (AccessControlPolicy) Yes
Grant ACLの個々の要素を格納するコンテナ Grantee, Permission (AccessControlList) Yes
Grantee
アクセス権の被譲渡者の情報を格納するコンテナ。
nodeのアトリビュートとして、 xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” の記載が必要。
また、アクセス権の被譲渡者の指定方法に応じて、
アトリビュートに、xsi:type=”CanonicalUser” xsi:type=”AmazonCustomerByEmail” xsi:type=”Group” のいずれかの指定が必要。
ID, DisplayName, EmailAddress, URI (Grant) Yes
(Grantee).ID
Granteeのアトリビュートに、xsi:type=”CanonicalUser” を宣言した場合に指定する。
アクセス権の被譲渡者のアカウントID
None (Grantee) Yes
(Grantee).DisplayName
Granteeのアトリビュートに、 xsi:type=”CanonicalUser” を宣言した場合に指定する。
アクセス権の被譲渡者のディスプレイネーム
None (Grantee) Yes
(Grantee).EmailAddress
Granteeのアトリビュートに、 xsi:type=”AmazonCustomerByEmail” を宣言した場合に指定する。
アクセス権の被譲渡者の登録されているe-mail address
None (Grantee) Yes
(Grantee).URI
Granteeのアトリビュートに、xsi:type=”Group”を宣言した場合に指定する。
None (Grantee)  
Permission
権限の種類を指定する。
有効値: (FULL_CONTROL|WRITE|WRITE_ACP|READ|READ_ACP)
None (Owner) Yes

注釈

HeaderによるACLの設定と、Bodyによるリクエストは併用不可。つまり、HeaderによりACL設定のリクエストを行う場合は、bodyの指定は不要であり、Bodyによるリクエストを行う場合はHeaderによる指定は不要である。

レスポンス
Header
Response(Header)
Node名 説明
x-amz-versionid
オブジェクトが一意なVersion IDを持っていた場合は、Version IDが返される
Type : String
Default : None
レスポンス (Body)
  • 無し
サンプルAPIコール & レスポンス
サンプルAPIコール

バケット “example” へ、PublicへのREADを付与したACLを設定します。

  • Request Header
PUT /example?acl HTTP/1.1
Host: str.cloudn-service.com
Date: Fri, 29 Aug 2014 02:16:17 +0000
Authorization: AWS SAMPLEAPIKEY2180912n:fb1IxbtjVuoW7Zts9lSsXXW1RVw=
  • Request Body
<?xml version="1.0" encoding="UTF-8"?>
<AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <Owner>
        <ID>cln1000000001|cln1000000001</ID>
        <DisplayName>cln1000000001</DisplayName>
    </Owner>
    <AccessControlList>
        <Grant>
            <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser">
                <ID>cln1000000001|cln1000000001</ID>
                <DisplayName>cln1000000001</DisplayName>
            </Grantee>
            <Permission>FULL_CONTROL</Permission>
        </Grant>
        <Grant>
            <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group">
                <URI>http://acs.amazonaws.com/groups/global/AllUsers</URI>
            </Grantee>
            <Permission>READ</Permission>
        </Grant>
    </AccessControlList>
</AccessControlPolicy>
  • 署名対象文字列
PUT


Fri, 29 Aug 2014 02:16:17 +0000
/example?acl
サンプルAPIレスポンス
  • HTTPレスポンス (Header)
HTTP/1.1 200 OK
  • HTTPレスポンス (Body)

    • None

GET Bucket Versioning - バケットのバージョニング情報取得

概要

バケットのバージョニング状態を取得します。

リクエスト
リクエストメソッド
  • GET
リクエストパス
  • パス形式の場合
    • “/${バケット名}”
  • VirtualHost形式の場合
    • “/”
リクエストパラメータ
リクエストパラメータ一覧
パラメーター名 説明 Required
versioning バージョニングリクエストを意味するパラメーター。 署名対象文字列として評価する必要がある。 Yes
Body
  • 無し
レスポンス
レスポンス (Body)
  • 形式:XML
Response(Body)
Node名 説明 子Node(親Node)
VersioningConfiguration Responseのコンテナ Status(None)
Status バケットのバージョニングの状態を、”Suspended”または、”Enabled”のいずれかで返す None(VersioningConfiguration)
サンプルAPIコール & レスポンス
サンプルAPIコール

バケット “exmaple” のバージョニング状態を取得します。

  • Request Header
GET /example?versioning HTTP/1.1
Host: str.cloudn-service.com
Date: Fri, 29 Aug 2014 02:16:17 +0000
Authorization: AWS SAMPLEAPIKEY2180912n:fb1IxbtjVuoW7Zts9lSsXXW1RVw=
  • 署名対象文字列
GET


Fri, 29 Aug 2014 02:16:17 +0000
/example?versioning
サンプルAPIレスポンス
  • HTTPレスポンス (Header)
HTTP/1.1 200 OK
  • HTTPレスポンス (Body)
<?xml version="1.0" encoding="UTF-8"?>
<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <Status>Enabled</Status>
</VersioningConfiguration>

PUT Bucket Versioning - バケットにバージョニングを設定

概要

バケットにバージョニングを設定します。

リクエスト
リクエストメソッド
  • PUT
リクエストパス
  • パス形式の場合
    • “/${バケット名}”
  • VirtualHost形式の場合
    • “/”
リクエストパラメータ
リクエストパラメータ一覧
パラメーター名 説明 Required
versioning バージョニング設定を示すフラグ。署名対象文字列に含める必要がある。 Yes
Body
  • 形式: XML
Request(Body)
Node名 説明 子node(親node) Required
VersioningConfiguration Request コンテナ Status (None) Yes
Status
バケットにVersioningの設定を指定する。
Valid Values: Suspended | Enabled
* Enable: Versioning を有効にする
* Suspended: Versioning を無効にする。無効の場合のVersionの値はnull
None (VersioningConfiguration)  
レスポンス
レスポンス (Body)
  • 無し
サンプルAPIコール & レスポンス
サンプルAPIコール

バケット “exmaple” バケットのバージョニングを有効にします。

  • Request Header
PUT /example?versioning HTTP/1.1
Host: str.cloudn-service.com
Date: Fri, 29 Aug 2014 02:16:17 +0000
Authorization: AWS SAMPLEAPIKEY2180912n:fb1IxbtjVuoW7Zts9lSsXXW1RVw=
  • 署名対象文字列
PUT


Fri, 29 Aug 2014 02:16:17 +0000
/example?versioning
  • Request Body
<?xml version="1.0" encoding="UTF-8"?>
<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Status>Enabled</Status>
</VersioningConfiguration>
サンプルAPIレスポンス
  • HTTPレスポンス (Header)
HTTP/1.1 200 OK

2.2. オブジェクト操作

Object Storageのオブジェクトを操作するためのAPIについて説明します。

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

概要

オブジェクトをダウンロードします。

注釈

Anonymousに対して読み取り権限を設定している場合、 認証ヘッダは省略可能です。

リクエスト
リクエストメソッド
  • GET
リクエストパス
  • パス形式の場合
    • “/${バケット名}/${オブジェクト名}”
  • VirtualHost形式の場合
    • “/${オブジェクト名}”
リクエストパラメータ

注釈

すべて署名対象文字列として評価する必要があります。

リクエストパラメータ一覧
パラメーター名 説明 Required
VersionId
特定のVersionのオブジェクトを取得する場合は指定する。
No
response-content-type
ResponseのContent-Type headerの値を上書きしたい場合に指定する。
- Type : String
- Default: None
No
response-content-language
ResponseにContent-Language header を指定する。
- Type : String
- Default: None
No
response-expires
ResponseにExpire header を指定する。
- Type : String
- Default: None
No
response-cache-control
ResponseにCache-Control header を指定する。
- Type : String
- Default: None
No
response-content-disposition
ResponseにContent-Disposition Headerを指定する。
- Type : String
- Default: None
No
response-content-encoding
ResponseにContent-Encoding を指定する。
- Type : String
- Default: None
No
Body
  • 無し
レスポンス
Header
Response(Header)
パラメーター名 説明
x-amz-delete-marker
ダウンロードしたオブジェクトにDelete Markerがついているかいないかを示す
- Type: Boolean
- Valid Values: (true|false)
- Default: false
x-amz-server-side​-encryption
オブジェクトがServer-Side encryptionの機能を用いて保存されていた場合、このHeaderに暗号化アルゴリズムが示される。
- Type: String
- Valid Values: AES256
x-amz-version-id
オブジェクトが一意なVersionIDを持っていた場合は、VersionIDが返される
- Type: String
- Default: None
レスポンス (Body)
  • オブジェクトデータ
サンプルAPIコール & レスポンス
サンプルAPIコール

バケット “exmaple” バケットの “example.txt” を取得します。

  • Request Header
GET /example/example.txt HTTP/1.1
Host: str.cloudn-service.com
Date: Fri, 29 Aug 2014 02:16:17 +0000
Authorization: AWS SAMPLEAPIKEY2180912n:fb1IxbtjVuoW7Zts9lSsXXW1RVw=
  • 署名対象文字列
GET


Fri, 29 Aug 2014 02:16:17 +0000
/example/example.txt
サンプルAPIレスポンス
  • HTTPレスポンス (Header)
HTTP/1.1 200 OK
  • HTTPレスポンス (Body)

    • 対象オブジェクト

PUT Object - バケット内にオブジェクトを作成

概要

バケット内にオブジェクトを作成します。

リクエスト
リクエストメソッド
  • PUT
リクエストパス
  • パス形式の場合
    • “/${バケット名}/${オブジェクト名}”
  • VirtualHost形式の場合
    • “/${オブジェクト名}”
リクエストパラメータ
リクエストパラメータ一覧
パラメーター名 説明 Required
Cache-Control
一連のRequest/Replyのやり取りの、キャッシュに対する振る舞いを指定する。
- Type: String
- Default: None
- Constraints: None
No
Content-Disposition
対象のオブジェクトに対して表象的な説明を付与する。
- Type: String
- Default: None
- Constraints: None
No
Content-Encoding
対象のオブジェクトに対してエンコーディングを指定する。
同時に、Content-Typeを参照することで得られるMedia Typeにたいして、
どのデコードメカニズムを適用しなければ行けないかを指定する。
- Type: String
- Default: None
- Constraints: None
No
Content-Length
オブジェクトのサイズをByte単位で指定する。
- Type: String
- Default: None
- Constraints: None
Yes
Content-MD5
ヘッダーを除いた128bitのMD5 Hash値をBase64 Encodingしたものを指定する。
これは、コンテンツの完全性を確認するために利用される。
- Type: String
- Default: None
- Constraints: None
No
Content-Type
コンテンツのフォーマットをMIME Typeで指定します。
- Type: String
- Default: binary/octet-stream
- Valid Values: MIME types
- Constraints : None
No
Expect
このヘッダーに” 100-continue”をした場合、クライアント(API を利用したソフトウェア)は、
ACKを受取るまでBodyを送信しません。
また、NACKを受取った場合はBodyを送信しません
- Type: String
- Default: None
- Valid Values: 100-continue
- Constraints : None
No
Expires
リクエストの有効期限をms( milliseconds)で指定する。
- Type: Int
- Default: None
- Constraints: None
No
x-amz-meta-*
オブジェクトにユーザ定義のメタデータを指定する。
また、オブジェクトをダウンロードする際に同時に返される。
PUT Headerは全体で8KBに制限されるため、ユーザ定義のメタデータヘッダーは2KBに制限される。
各メタデータヘッダーは、Key-Value Pairの形式をとり、且つ、UTF-8でエンコードされた後、合計で2KBとする。
- Type: String
- Default: None
- Constraints: None
No
x-amz-server-side-encryption
オブジェクトが作成される際、サーバー側で暗号化する場合のアルゴリズムを指定する。
Type : String
Valid Value: AES256
No
x-amz-acl
オブジェクトに対して、ACLを設定する。
Type: String
Default: private
Valid Values: private | public-read | public-read-write | authenticated-read | ¥
bucket-owner-read | bucket-owner-full-control Constraints: None
No
Body
  • アップロードするデータ
レスポンス
Header
Response(Header)
パラメーター名 説明
x-amz-server-side​-encryption Request時にserver-side encryptionを指定した場合に、確認のため当該ヘッダーが付与される
x-amz-version-id オブジェクトのVersion ID
レスポンス (Body)
  • 無し
サンプルAPIコール & レスポンス
サンプルAPIコール

オブジェクト “exmaple.txt” を “example” バケットへ “example.txt” というKeyでアップロードします。

  • Request Header
PUT /example/example.txt HTTP/1.1
Host: str.cloudn-service.com
Date: Fri, 29 Aug 2014 02:16:17 +0000
Authorization: AWS SAMPLEAPIKEY2180912n:y1lmGxjyMj//h4IvjykTPYYEsL4=
  • 署名対象文字列
GET


Fri, 29 Aug 2014 02:16:17 +0000
/example/exmaple.txt
  • Request Body

    • 転送ファイルが含まれます
サンプルAPIレスポンス
  • HTTPレスポンス (Header)
HTTP/1.1 200 OK

HEAD Object - オブジェクトのメタ情報の取得

概要

オブジェクトのメタ情報のみを取得します。

リクエスト
リクエストメソッド
  • HEAD
リクエストパス
  • パス形式の場合
    • “/${バケット名}/${オブジェクト名}”
  • VirtualHost形式の場合
    • “/${オブジェクト名}”
リクエストパラメータ

注釈

すべて署名対象文字列として評価する必要があります。

リクエストパラメータ一覧
パラメーター名 説明 Required
versionId
特定のVersionのオブエジェクトを取得する場合は指定する。
No
response-content-type
ResponseのContent-Type headerの値を上書きしたい場合に指定する。
- Type : String
- Default: None
No
response-content-language
ResponseにContent-Language header を指定する。
- Type : String
- Default: None
No
response-expires
ResponseにExpire header を指定する。
- Type : String
- Default: None
No
response-cache-control
ResponseにCache-Control header を指定する。
- Type : String
- Default: None
No
response-content-disposition
ResponseにContent-Disposition Headerを指定する。
- Type : String
- Default: None
No
response-content-encoding
ResponseにContent-Encoding を指定する。
- Type : String
- Default: None
No
Body
  • 無し
レスポンス
Header
Response(Header)
パラメーター名 説明
x-amz-meta-*
オブジェクトを作成する際にメタ情報を指定した場合に、指定したメタ情報が返される。
- Type: Boolean
- Valid Values: true | false
- Default: false
x-amz-server-side​-encryption
オブジェクトがServer-Side encryptionの機能を用いて保存されていた場合、
このHeaderに暗号化アルゴリズムが示される。
- Type: String
- Valid Values: AES256
x-amz-version-id
オブジェクトが一意なVersion IDを持っていた場合は、Version IDが返される
- Type: String
- Default: None
レスポンス (Body)
  • 無し
サンプルAPIコール & レスポンス
サンプルAPIコール

バケット “exmaple” バケットの”example.txt” のメタデータを取得します。

  • Request Header
HEAD /example/example.txt HTTP/1.1
Host: str.cloudn-service.com
Date: Fri, 29 Aug 2014 02:16:17 +0000
Authorization: AWS SAMPLEAPIKEY2180912n:fb1IxbtjVuoW7Zts9lSsXXW1RVw=
  • 署名対象文字列
HEAD


Fri, 29 Aug 2014 02:16:17 +0000
/example/example.txt
サンプルAPIレスポンス
  • HTTPレスポンス (Header)
HTTP/1.1 200 OK
Date: Fri, 29 Aug 2014 05:07:14 GMT
x-amz-request-id: 576B35902F3A11E4
Last-Modified: Fri, 29 Aug 2014 13:56:25 JST
ETag: "d41d8cd98f00b204e9800998ecf8427e"
Content-Type: binary/octet-stream
Content-Length: 0

DELETE Object - 指定されたオブジェクトを削除

概要

バケット内の指定されたオブジェクトを削除します。

リクエスト
リクエストメソッド
  • DELETE
リクエストパス
  • パス形式の場合
    • “/${バケット名}/${オブジェクト名}”
  • VirtualHost形式の場合
    • “/${オブジェクト名}”
リクエストパラメータ
リクエストパラメータ一覧
パラメーター名 説明 Required
VersionId
バージョンを指定して、オブジェクトを削除する場合に含めるリクエストパラメーター。
署名対象文字列として評価する必要がある。
- Type : String
- Default : None
No

参考

以下のAPIで所有しているオブジェクトを確認可能です。

以下のAPIでバージョニングされたオブジェクトを削除する際に 必要なパラメーター(VersionId)を確認出来ます。

Body
  • 無し
レスポンス
Header
Response(Header)
Node名 説明
x-amz-delete-marker Version管理されたObjectが一時的に削除されたものなのか否かのフラグ
x-amz-version-id versionIdが指定された場合に、 指定されたversionでこのヘッダーに記載されたversionのオブジェクトが削除されたことを示す
レスポンス (Body)
  • 無し
サンプルAPIコール & レスポンス
サンプルAPIコール

バケット “exmaple” バケットの”example.txt” ACLを取得します。

  • Request Header
DELETE /example/example.txt HTTP/1.1
Host: str.cloudn-service.com
Date: Fri, 29 Aug 2014 02:16:17 +0000
Authorization: AWS SAMPLEAPIKEY2180912n:fb1IxbtjVuoW7Zts9lSsXXW1RVw=
  • 署名対象文字列
DELETE


Fri, 29 Aug 2014 02:16:17 +0000
/example/example.txt
サンプルAPIレスポンス
  • HTTPレスポンス (Header)
HTTP/1.1 204 No Content
Date: Fri, 29 Aug 2014 02:16:17 GMT
x-amz-request-id: 94F7B0B05FFE11E4
  • HTTPレスポンス (Body)

    • 無し

GET Object ACL - オブジェクトのACL取得

概要

オブジェクトのACLを取得します。

リクエスト
リクエストメソッド
  • GET
リクエストパス
  • パス形式の場合
    • “/${バケット名}/${オブジェクト名}”
  • VirtualHost形式の場合
    • “/${オブジェクト名}”
リクエストパラメータ
リクエストパラメータ一覧
パラメーター名 説明 Required
acl オブジェクトに設定されたACLを要求するフラグ。 署名対象文字列として評価する必要がある。 Yes
Body
  • 無し
レスポンス
レスポンス (Body)
  • 形式:XML
Response(Body)
Node名 説明 子Node(親Node)
AccessControlPolicy Responseのコンテナ Owner, AccessControlList(None)
Owner ObjectのOwner 情報を格納するコンテナ ID, DisplayName (AccessControlPolicy)
(Owner).ID ObjectのOwnerのアカウントID None (AccessControlPolicy.Owner)
(Owner).DisplayName ObjectのOwnerのディスプレイネーム None (AccessControlPolicy.Owner)
AccessControlList ACLに関する情報を格納するコンテナ Grant (AccessControlPolicy)
Grant 許可属性を格納したコンテナ Grantee, Permission (AccessControlPolicy. AccessControlList)
Grantee アクセス権の被譲渡者に関する情報を格納するコンテナ ID, DisplayName (AccessControlPolicy. AccessControlList.Grant)
(Grantee).ID アクセス権の被譲渡者のID None (AccessControlPolicy. AccessControlList.Grant.Grantee)
(Grantee).DisplayName アクセス権の被譲渡者のディスプレイネーム None (AccessControlPolicy. AccessControlList.Grant.Grantee)
Permission オブジェクトに対するパーミッション (FULL_CONTROL, WRITE, READ_ACP) None (ListPartsResult.Owner)
サンプルAPIコール & レスポンス
サンプルAPIコール

バケット “exmaple” バケットの”example.txt” ACLを取得します。

  • Request Header
GET /example/example.txt?acl HTTP/1.1
Host: str.cloudn-service.com
Date: Fri, 29 Aug 2014 02:16:17 +0000
Authorization: AWS SAMPLEAPIKEY2180912n:fb1IxbtjVuoW7Zts9lSsXXW1RVw=
  • 署名対象文字列
GET


Fri, 29 Aug 2014 02:16:17 +0000
/example/example.txt?acl
サンプルAPIレスポンス
  • HTTPレスポンス (Header)
HTTP/1.1 200 OK
  • HTTPレスポンス (Body)
<?xml version="1.0" encoding="UTF-8"?>
<AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <Owner>
        <ID>cln1000000001|cln1000000001</ID>
        <DisplayName>cln1000000001</DisplayName>
    </Owner>
    <AccessControlList>
        <Grant>
            <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser">
                <ID>cln1000000001|cln1000000001</ID>
                <DisplayName>cln1000000001</DisplayName>
            </Grantee>
            <Permission>FULL_CONTROL</Permission>
        </Grant>
    </AccessControlList>
</AccessControlPolicy>

PUT Object ACL - オブジェクトACLを設定

概要

オブジェクトにACLを設定します。

リクエスト
リクエストメソッド
  • PUT
リクエストパス
  • パス形式の場合
    • “/${バケット名}/${オブジェクト名}”
  • VirtualHost形式の場合
    • “/${オブジェクト名}”
リクエストパラメータ
リクエストパラメータ一覧
パラメーター名 説明 Required
acl ACL設定を示すフラグ。署名対象文字列に含める必要がある。 Yes
versionId 特定のバージョンのオブジェクトを指定する場合に指定する。署名対象文字列に含める必要がある No
Body
Request(Body)
Node名 説明 子node (親node) Required
AccessControlPolicy Requestコンテナ Owner, AccessControlList (None) Yes
Owner objectのオーナー情報を格納するコンテナ ID, DisplayName (AccessControlPolicy) Yes
(Owner).ID objectのオーナーのID None (Owner) Yes
(Owner).DisplayName objectのオーナーのディスプレイネーム None (Owner) Yes
AccessControlList ACLの情報を格納するコンテナ Grant (AccessControlPolicy) Yes
Grant ACLの個々の要素を格納するコンテナ Grantee, Permission (AccessControlList) Yes
Grantee
アクセス権の被譲渡者の情報を格納するコンテナ
nodeのアトリビュートとして、xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” の記載が必要。
また、アクセス権の被譲渡者の指定方法に応じて、
アトリビュートに、 xsi:type=”CanonicalUser” xsi:type=”AmazonCustomerByEmail” xsi:type=”Group” のいずれかの指定が必要。
ID, DisplayName, EmailAddress, URI (Grant) Yes
(Grantee).ID Granteeのアトリビュートに、xsi:type=”CanonicalUser” を宣言した場合に指定する。 アクセス権の被譲渡者のアカウントID。 None (Grantee) No
(Grantee).DisplayName Granteeのアトリビュートに、xsi:type=”CanonicalUser” を宣言した場合に指定する。 アクセス権の被譲渡者のディスプレイネーム。 None (Grantee) No
(Grantee).EmailAddress Granteeのアトリビュートに、xsi:type=”AmazonCustomerByEmail” を宣言した場合に指定する。 アクセス権の被譲渡者の登録されているe-mail address。 None (Grantee) No
(Grantee).URI Granteeのアトリビュートに、xsi:type=”Group” を宣言した場合に指定する。 None (Grantee) No
Permission
権限の種類を指定する。
Valid Values: (FULL_CONTROL|WRITE|WRITE_ACP|READ|READ_ACP)
None (Owner) Yes

注釈

HeaderによるACLの設定と、Bodyによるリクエストは併用不可です。 つまり、HeaderによりACL設定のリクエストを行う場合は、bodyの指定は不要であり、Bodyによるリクエストを行う場合はHeaderによる指定は不要です。

レスポンス
Header
Response(Header)
Node名 説明
x-amz-versionid
オブジェクトが一意なVersion IDを持っていた場合は、Version IDが返される
Type : String
Default : None
レスポンス (Body)
  • 無し
サンプルAPIコール & レスポンス
サンプルAPIコール

オブジェクト “exmaple.txt” へ、”Public” (ウェブ公開)をします。

  • Request Header
PUT /example/example.txt?acl HTTP/1.1
Host: str.cloudn-service.com
Date: Fri, 29 Aug 2014 02:16:17 +0000
Authorization: AWS SAMPLEAPIKEY2180912n:y1lmGxjyMj//h4IvjykTPYYEsL4=
Content-Length: 874
  • 署名対象文字列
PUT


Fri, 29 Aug 2014 02:16:17 +0000
/example/example.txt?acl
  • Request Body
<?xml version="1.0" encoding="UTF-8"?>
<AccessControlPolicy xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <Owner>
        <ID>cln1000000001|cln1000000001</ID>
        <DisplayName>cln1000000001</DisplayName>
    </Owner>
    <AccessControlList>
        <Grant>
            <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="CanonicalUser">
                <ID>cln1000000001|cln1000000001</ID>
                <DisplayName>cln1000000001</DisplayName>
            </Grantee>
            <Permission>READ</Permission>
        </Grant>
        <Grant>
            <Grantee xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Group">
                <URI>http://acs.amazonaws.com/groups/global/AllUsers</URI>
            </Grantee>
            <Permission>READ</Permission>
        </Grant>
    </AccessControlList>
</AccessControlPolicy>
サンプルAPIレスポンス
  • HTTPレスポンス (Header)
HTTP/1.1 200 OK

PUT Object Copy - オブジェクトを別なバケットにコピー

概要

オブジェクトを別のバケットにコピーします。

リクエスト
リクエストメソッド
  • PUT
リクエストパス
  • パス形式の場合
    • “/${バケット名}/${オブジェクト名}”
  • VirtualHost形式の場合
    • “/${オブジェクト名}”
リクエストパラメータ
リクエストパラメータ一覧
パラメーター名 説明 Required
versionId 特定のバージョンのオブジェクトを指定する場合に指定する。署名対象文字列に含める必要がある。 No
Body
  • 無し
レスポンス
Header
Response(Header)
パラメーター名 説明
x-amz-copy-source-version-id コピー元のオブジェクトのVersion ID
x-amz-server-side​-encryption Request時にserver-side encryptionを指定した場合に、確認のため当該ヘッダーが付与される
x-amz-version-id BucketにVersioning が指定されていた場合は、新しく作成されたオブジェクトのVersion IDが返れる No
レスポンス (Body)
  • 形式:XML
Response(Body)
Node名 説明 子Node(親Node)
CopyObjectResult Responseのコンテナ ETag, LastModified (None)
ETag 新しく作成されたオブジェクトのEntity Tag. None (CopyObjectResult)
LastModified バケット名 None (CopyObjectResult)

GET Bucket Object Versions - オブジェクトのバージョニング情報取得

概要

バケットに格納されたオブジェクトのバージョニング情報を取得します。

リクエスト
リクエストメソッド
  • GET
リクエストパス
  • パス形式の場合
    • “/${バケット名}/${オブジェクト名}”
  • VirtualHost形式の場合
    • “/${オブジェクト名}”
リクエストパラメータ
リクエストパラメータ一覧
パラメーター名 説明 Required
versions
オブジェクトのバージョンを取得するためのリクエストパラメータ。署名対象文字列として、評価する必要がある。
Yes
delimiter [1]
指定した文字列により、Responseに含まれるKeyを 2 分割し、前方一致でKeyに共通する部分をPrefixとして抽出する
- Type : String
- Default : None
No
marker [1]
指定した文字列をpivotとして、keyの値がpivot以降のものを、アルファベット順に並べる
- Type : String
- Default : None
No
max-keys [1]
Responseに含まれるKeyの数の上限値を設定する.上限を超えた場合は、Response中のIsTruncated の値がTrueで返される。
- Type : String
- Default : 1000
No
prefix [1]
指定した文字列で始まるkeyを持つオブジェクトだけを、responseに含める。
- Type : String
- Default : None
No

注意

[1](1, 2, 3, 4) 署名対象文字列には加わりません。
Body
  • 無し
レスポンス
レスポンス (Body)
  • 形式:XML
Response(Body)
Node名 説明 子Node(親Node)
ListVersionsResult Responseのコンテナ Name, Prefix, KeyMarker, MaxKeys, VersionIdMarker, IsTruncated, Version (None)
Name Bucket名 None (ListVersionsResult)
Prefix リクエスト時に指定したPrefix None (ListVersionsResult)
KeyMarker リクエスト時に指定したkey-marker None (ListVersionsResult)
VersionIdMarker リクエスト時に指定したversion-id-marker None (ListVersionsResult)
MaxKeys リクエスト時に指定したmax-keys None (ListVersionsResult)
IsTruncated 結果が切り捨てられているかどうかを、 boolean で提示。MaxKeysを超えた場合に、Trueとなる。 None (ListVersionsResult)
NextKeyMarker Responseに含まれるVersionObjectの数がMaxKeysを超えた場合に返される。次回以降のリクエストにおいて、Key-Markerにこの値をいれることで、以降のObjectを取得出来るようにする。 None (ListVersionsResult)
NextVersionIdMarker Responseに含まれるVersionObjectの数がMaxKeysを超えた場合に返される。次回以降のリクエストにおいて、version-id-markerにこの値をいれることで、以降のObjectを取得出来るようにする。 None (ListVersionsResult)
Version オブジェクトのVersion情報のコンテナ Key, VersionId, IsLatest, LastModified, StorageClass, Size, ETag, Owner (ListVersionsResult)
Key オブジェクト名を表すキー None (ListVersionsResult.Version)
VersionID オブジェクトのVersion ID None (ListVersionsResult.Version)
IsLatest オブジェクトが最新か否か None (ListVersionsResult.Version)
LastModified 最終更新日時 None (ListVersionsResult.Version)
StorageClass 常に”STANDARD”を返す None (ListVersionsResult.Version)
Size オブジェクトのサイズ (Byte) None (ListVersionsResult.Version)
Etag オブジェクトのMD5値。変更の有無の確認の為にあり、メタデータではない None (ListVersionsResult.Version)
Owner オブジェクトのOwner情報のコンテナ ID, DisplayName (ListVersionsResult.Version)
ID オブジェクトのOwnerのID None (ListVersionsResult.Version.Owner)
DisplayName オブジェクトのOwnerのディスプレイネーム None (ListVersionsResult.Version.Owner)
サンプルAPIコール & レスポンス
サンプルAPIコール

バケット “exmaple” のバージョニング情報を取得します。

  • Request Header
GET /example?versions HTTP/1.1
Host: str.cloudn-service.com
Date: Fri, 29 Aug 2014 02:16:17 +0000
Authorization: AWS SAMPLEAPIKEY2180912n:fb1IxbtjVuoW7Zts9lSsXXW1RVw=
  • 署名対象文字列
GET


Fri, 29 Aug 2014 02:16:17 +0000
/example?versions
サンプルAPIレスポンス
  • HTTPレスポンス (Header)
HTTP/1.1 200 OK
  • HTTPレスポンス (Body)
<Version>
    <Key>example.txt</Key>
    <VersionId>fe1bce66-1a75-8faf-b500-0025902f9206</VersionId>
    <IsLatest>false</IsLatest>
    <LastModified>2014-09-01T05:36:17.877Z</LastModified>
    <StorageClass>STANDARD</StorageClass>
    <Size>5</Size>
    <ETag>&quot;d8e8fca2dc0f896fd7cb4cb0031ba249&quot;</ETag>
    <Owner>
        <ID>cln1000000001|cln1000000001</ID>
        <DisplayName>cln1000000001</DisplayName>
    </Owner>
</Version>
<Version>
    <Key>example.txt</Key>
    <VersionId>fe1bce67-874c-c2ff-b2da-0025902f4f2c</VersionId>
    <IsLatest>false</IsLatest>
    <LastModified>2014-09-01T05:26:05.776Z</LastModified>
    <StorageClass>STANDARD</StorageClass>
    <Size>0</Size>
    <ETag>&quot;d41d8cd98f00b204e9800998ecf8427e&quot;</ETag>
    <Owner>
        <ID>cln1000000001|cln1000000001</ID>
        <DisplayName>cln1000000001</DisplayName>
    </Owner>
</Version>
<Version>
    <Key>example.txt</Key>
    <VersionId>null</VersionId>
    <IsLatest>false</IsLatest>
    <LastModified>2014-09-01T04:49:36.500Z</LastModified>
    <StorageClass>STANDARD</StorageClass>
    <Size>167</Size>
    <ETag>&quot;4cd1c6496930ac6dfa432b760cddfa60&quot;</ETag>
    <Owner>
        <ID>cln1000000001|cln1000000001</ID>
        <DisplayName>cln1000000001</DisplayName>
    </Owner>
</Version>
<DeleteMarker>
    <Key>example2.txt</Key>
    <VersionId>fe1bce67-95f2-74df-b2da-0025902f4f2c</VersionId>
    <IsLatest>true</IsLatest>
    <LastModified>2014-09-01T05:25:41.202Z</LastModified>
    <Owner>
        <ID>cln1000000001|cln1000000001</ID>
        <DisplayName>cln1000000001</DisplayName>
    </Owner>
</DeleteMarker>
<Version>
    <Key>example2.txt</Key>
    <VersionId>null</VersionId>
    <IsLatest>false</IsLatest>
    <LastModified>2014-08-30T05:46:00.285Z</LastModified>
    <StorageClass>STANDARD</StorageClass>
    <Size>0</Size>
    <ETag>&quot;d41d8cd98f00b204e9800998ecf8427e&quot;</ETag>
    <Owner>
        <ID>cln1000000001|cln1000000001</ID>
        <DisplayName>cln1000000001</DisplayName>
    </Owner>
</Version>

Initiate Multipart Upload - マルチパートアップロードの初期化

概要
マルチパートアップロードを開始し、uploadIdを取得します。
uploadIdを取得後に、 Upload Part - パーツをアップロード を利用し、分割ファイルのアップロードを実施します。
リクエスト
リクエストメソッド
  • POST
リクエストパス
  • パス形式の場合
    • “/${バケット名}/${オブジェクト名}”
  • VirtualHost形式の場合
    • “/${オブジェクト名}”
リクエストパラメータ
リクエストパラメータ一覧
パラメーター名 説明 Required
uploads
マルチパートアップロードを示すフラグ。署名対象文字列に含める必要がある。
Yes
Body
  • 無し
レスポンス
Header
Response(Header)
パラメーター名 説明
x-amz-server-side​-encryption Request時にserver-side encryptionを指定した場合に、確認のため当該ヘッダーが付与される
x-amz-version-id オブジェクトのVersion ID
レスポンス (Body)
Response(Body)
パラメーター名 説明 子Node (親Node)
InitiateMultipartUploadResult レスポンスコンテナ Bucket, Key, UploadId
Bucket Bucket名 None (InitiateMultipartUploadResult)
Key Object名 None (InitiateMultipartUploadResult)
UploadId UploadId - Upload Part - パーツをアップロード で利用します None (InitiateMultipartUploadResult)
サンプルAPIコール & レスポンス
サンプルAPIコール

Multipart Upload

  • Request Header
POST /example/example.txt?uploads HTTP/1.1
Host: str.cloudn-service.com
Date: Fri, 29 Aug 2014 02:16:17 +0000
Authorization: AWS SAMPLEAPIKEY2180912n:fb1IxbtjVuoW7Zts9lSsXXW1RVw=
  • 署名対象文字列
POST


Fri, 29 Aug 2014 02:16:17 +0000
/example/example.txt?uploads
サンプルAPIレスポンス
  • HTTPレスポンス (Header)
HTTP/1.1 200 OK
  • HTTPレスポンス (Body)
<?xml version="1.0" encoding="UTF-8"?>
<InitiateMultipartUploadResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <Bucket>example</Bucket>
    <Key>example.txt</Key>
    <UploadId>NmE1OWU5Mjc3MTQwOTI5NTAwOTUxMA</UploadId>
</InitiateMultipartUploadResult>

Upload Part - パーツをアップロード

概要

Multipart Uploadにおいて、一つのパーツをuploadします。

注釈

事前に Initiate Multipart Upload - マルチパートアップロードの初期化 を用いて、UploadIdを取得しておく必要があります。

リクエスト
リクエストメソッド
  • PUT
リクエストパス
  • パス形式の場合
    • “/${バケット名}/${オブジェクト名}”
  • VirtualHost形式の場合
    • “/${オブジェクト名}”
リクエストパラメータ
リクエストパラメータ一覧
パラメーター名 説明 Required
partNumber パートの順番を指定する。(1から始まる整数)。署名対象文字列として評価する必要がある。 Yes
uploadId Initiate Multipart Uploadの結果得られたUploadIdを指定する。署名対象文字列として評価する必要がある。 Yes
Body
  • アップロードデータ
レスポンス
Header
Response(Header)
パラメーター名 説明 Required
ETag [1] オブジェクトのMD5 Hash値。 変更の有無を反映するだけであり、オブジェクトのメタデータではない。 Yes
x-amz-server-side​-encryption

server-side encryptionを指定した場合に、確認のため当該ヘッダーが付与される。

No

脚注

[1]Common Response Headerではありますが、 POST Complete Multipart Upload - マルチパートアップロードを完了させる を実行する際に必要となるため明記します
レスポンス (Body)
  • 無し
サンプルAPIコール & レスポンス
サンプルAPIコール

バケット “exmaple” の”example.txt” の1つめのパーツをアップロードします。

  • Request Header
PUT /example/example.txt?partNumber=1&uploadId=NDE5ZWJmNDgxNzE0MTQ2MzU2NzA2MTI HTTP/1.1
Host: str.cloudn-service.com
Date: Fri, 29 Aug 2014 02:16:17 +0000
Authorization: AWS SAMPLEAPIKEY2180912n:fb1IxbtjVuoW7Zts9lSsXXW1RVw=
Content-Length: 15728640
  • 署名対象文字列
POST


Fri, 29 Aug 2014 02:16:17 +0000
/example/example.txt?partNumber=1&uploadId=NDE5ZWJmNDgxNzE0MTQ2MzU2NzA2MTI
サンプルAPIレスポンス
  • HTTPレスポンス (Header)
HTTP/1.1 200 OK
Date: Fri, 29 Aug 2014 02:16:17 GMT
x-amz-request-id: 60ACFD505FFA11E4
ETag: "815e7ee6e22d642058c027054f57e16b"
Content-Length: 0

GET List Multipart Uploads - マルチパートアップロード一覧取得

概要

Bucketに対する進行中のマルチパートアップロードの状態の一覧を取得します。

リクエスト
リクエストメソッド
  • GET
リクエストパス
  • パス形式の場合
    • “/${バケット名}”
  • VirtualHost形式の場合
    • “/”
リクエストパラメータ
リクエストパラメータ一覧
パラメーター名 説明 Required
uploads
進行中のバージョンを取得するためのリクエストパラメータ。署名対象文字列として、評価する。
Yes
delimiter [1]
指定した文字列により、Responseに含まれるKeyを2分割し、前方一致でKeyに共通する部分をPrefixとして抽出する
- Type: String
- Default: None
No
key-marker [1]
指定した文字列をpivotとして、keyの値がpivot以降のものを、アルファベット順に並べる
- Type: String
- Default: None
No
max-uploads [1]
Responseに含まれるuploadの数の上限値を設定する.上限を超えた場合は、Response中のIsTruncated の値がTrueで返される。
- Type: String
- Default: 1000
No
prefix [1]
指定した文字列で始まるkeyを持つオブジェクトだけを、responseに含める。
- Type: String
- Default: None
No

脚注

[1](1, 2, 3, 4) 署名対象文字列には加わりません。
Body
  • 無し
レスポンス
レスポンス (Body)
  • 形式:XML
Response(Body)
Node名 説明 子Node(親Node)
ListMultipartUploadsResult Responseのコンテナ Bucket, prefix, KeyMarker, UploadIdMarker, MaxUpload, IsTruncated, NextKeyMarker, NextUploadIdMarker, upload (None)
Bucket Bucket名 None (ListMultipartUploadsResult)
Prefix リクエスト時に指定したPrefix None (ListMultipartUploadsResult)
KeyMarker リクエスト時に指定したkey-marker None (ListMultipartUploadsResult)
UploadIdMarker リクエスト時に指定したupload-id-marker None (ListMultipartUploadsResult)
MaxUploads リクエスト時に指定したmax-uploads None (ListMultipartUploadsResult)
IsTruncated
結果が切り捨てられているかどうかをbooleanで提示。
MaxUploadsを超えた場合に、Trueとなる。
None (ListMultipartUploadsResult)
NextKeyMarker
Responseに含まれるUploadの数がMaxUploadsを超えた場合に返される。
次回以降のリクエストにおいて、Key-Markerにこの値をいれることで、以降のUploadを取得出来るようにする。
None (ListMultipartUploadsResult)
NextUploadIdMarker
Responseに含まれるUploadの数がMaxUoloadsを超えた場合に返される。
次回以降のリクエストにおいて、upload-id-markerにこの値をいれることで、以降のUploadを取得出来るようにする。
None (ListMultipartUploadsResult)
Delimiter リクエスト時に指定したdelimiterの値。 None (ListMultipartUploadsResult)
CommonPrefixes
Delimiterをリクエストに指定し、Delimiterを基準とした前方をCommon Prefixとするが、
そのCommon Prefixを格納するコンテナ
Prefix (ListMultipartUploadsResult)
(CommonPrefix,)Prefix CommonPrefixとして得られたprefix None (ListMultipartUploadsResult.CommonPrefix)
Upload Upload状況のコンテナ Key, Initiator, Owner, StorageClass, iniated (ListMultipartUploadsResult)
Key Object Key None (ListVersionsResult.Version.Upload)
Initiator 当該アップロードを開始したアカウント情報を格納するコンテナ。 ID, DisplayName (ListVersionsResult.Version.Upload)
(Initiator.)ID 当該アップロードを開始したアカウントのID。 None (ListVersionsResult.Version.Upload.Initiator)
(Initiator.)DisplayName 当該アップロードを開始したアカウントのディスプレイネーム。 None (ListVersionsResult.Version.Upload.Initiator)
Owner Objectが作成された後の、そのObjectのOwner情報を格納するコンテナ。 ID, DisplayName (ListVersionsResult.Version.Upload)
(Owner.)ID Objectが作成された後の、そのObjectのOwnerのID。 None (ListVersionsResult.Version.Upload.Initiator)
(Owner.)DisplayName ObjectのMD5値。変更の有無の確認の為にあり、メタデータではない。 None (ListVersionsResult.Version.Upload.Initiator)
StorageClass 常に”STANDARD”を返す None (ListVersionsResult.Version.Upload)
Initiated 当該Uploadが開始された日時 None (ListVersionsResult.Version.Owner)
サンプルAPIコール & レスポンス
サンプルAPIコール

バケット “example” で進行中のMultipart Uploadの一覧を取得する。

  • Request Header
GET /example?uploads HTTP/1.1
Host: str.cloudn-service.com
Date: Fri, 29 Aug 2014 02:16:17 +0000
Authorization: AWS SAMPLEAPIKEY2180912n:fb1IxbtjVuoW7Zts9lSsXXW1RVw=
  • 署名対象文字列
GET


Fri, 29 Aug 2014 02:16:17 +0000
/example?uploads
サンプルAPIレスポンス
  • HTTPレスポンス (Header)
HTTP/1.1 200 OK
  • HTTPレスポンス (Body)
<?xml version="1.0" encoding="UTF-8"?>
<ListMultipartUploadsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <Bucket>example</Bucket>
    <KeyMarker/>
    <UploadIdMarker/>
    <NextKeyMarker/>
    <NextUploadIdMarker/>
    <MaxUploads>1000</MaxUploads>
    <IsTruncated>false</IsTruncated>
    <Upload>
        <Key>test2.txt</Key>
        <UploadId>ZjhkNjA0ODEyMTQwOTU1OTgzNTc0Mw</UploadId>
        <Initiator>
            <ID>cln1000000001|cln1000000001</ID>
            <DisplayName>cln1000000001</DisplayName>
        </Initiator>
        <Owner>
            <ID>cln1000000001|cln1000000001</ID>
            <DisplayName>cln1000000001</DisplayName>
        </Owner>
        <StorageClass>STANDARD</StorageClass>
        <Initiated>2014-09-01T08:23:55.743Z</Initiated>
    </Upload>
</ListMultipartUploadsResult>

List Parts - アップロード済みのマルチパートアップロードのパーツ情報の一覧を取得

概要

マルチパートアップロードにおいて、アップロード済みのパーツ情報の一覧を取得します。

リクエスト
リクエストメソッド
  • GET
リクエストパス
  • パス形式の場合
    • “/${バケット名}/${オブジェクト名}”
  • VirtualHost形式の場合
    • “/${オブジェクト名}”
リクエストパラメータ
リクエストパラメータ一覧
パラメーター名 説明 Required
uploadId Initiate Multipart Upload - マルチパートアップロードの初期化 の結果得られたUploadIdを指定する。署名対象文字列として評価する必要がある。 Yes
part-number-marker [1]
このパラメータで指定した値より大きなPart Numberのみをresponseに含めるようにする
- Type: String
- Default: None
No
max-parts [1]
Responseのbodyに含まれるPartsの数の上限を設定する。
- Type: String
- Default: 1000
No No

参考

以下のAPIで必要なパラメーターを取得可能です。

脚注

[1](1, 2) 署名対象文字列には加わりません。
Body
  • 無し
レスポンス
レスポンス (Body)
  • 形式:XML
Response(Body)
Node名 説明 子Node(親Node)
ListPartsResult Responseのコンテナ Bucket, Key, UploadId, Initiator, Owner, StorageClass, PartNumberMarker, NextPartNumberMarker, MaxParts, IsTruncated, Part (None)
Bucket バケット名 None (ListPartsResult)
Key 新しく作成されるObject Key None (ListPartsResult)
UploadId マルチパートアップロードを特定するためのID None (ListPartsResult)
Initiator 当該マルチパートアップロードを開始したアカウントの情報を格納するコンテナ ID, DisplayName (ListPartsResult)
(initiator).ID 当該マルチパートアップロードを開始したアカウントID None (ListPartsResult.Initiator)
(initiator).DisplayName 当該マルチパートアップロードを開始したアカウントのディスプレイネーム None (ListPartsResult.Initiator)
Owner 当該マルチパートアップロードの結果作成されるオブジェクトのOwnerの情報を格納するコンテナ ID, DIsplayName (ListPartsResult)
(Owner.)ID 当該マルチパートアップロードの結果作成されるオブジェクトのOwnerのアカウントID None (ListPartsResult.Owner)
(Owner).DisplayName 当該マルチパートアップロードの結果作成されるオブジェクトのOwnerのディスプレイネーム None (ListPartsResult.Owner)
StorageClass Uploadしたオブジェクトが格納されるストレージのクラス名 None (ListPartsResult)
PartNumberMarker このnodeに格納された数値より大きなPart Numberを持つpartが返されていることを示す None (ListPartsResult)
MaxParts レスポンスに含まれるPartの最大数 None (ListPartsResult)
IsTruncated Responseに含まれるPartの数がMaxPartsの値を超えた場合に”True”がセットされ返される None (ListPartsResult)
NextPartNumberMarker Responseに含まれるPartの数がMaxPartsの値を超えた場合に、以降のリクエスト時に指定するpart-number-markerの値を提示する None (ListPartsResult)
Part Upload済みのオブジェクトの断片情報を格納するコンテナ PartNumber, LastModified, ETag , Size (ListPartsResult)
PartNumber オブジェクトの断片のシーケンシャルな番号 None (ListPartsResult.Part)
LastModified オブジェクトの断片の最終更新に知事 None (ListPartsResult.Part)
ETag アップロードしたオブジェクトの断片のEntity Tagの値 None (ListPartsResult.Part)
Size アップロードしたオブジェクトの断片のサイズ(Byte) None (ListPartsResult.Part)
サンプルAPIコール & レスポンス
サンプルAPIコール

アップロード済みのパーツ情報の一覧を取得します。

  • Request Header
GET /example/example.txt?uploadId=NmE1OWU5Mjc3MTQwOTI5NTAwOTUxMA HTTP/1.1
Host: str.cloudn-service.com
Date: Fri, 29 Aug 2014 02:16:17 +0000
Authorization: AWS SAMPLEAPIKEY2180912n:fb1IxbtjVuoW7Zts9lSsXXW1RVw=
  • 署名対象文字列
GET


Fri, 29 Aug 2014 02:16:17 +0000
/example/example.txt?uploadId=NmE1OWU5Mjc3MTQwOTI5NTAwOTUxMA
サンプルAPIレスポンス
  • HTTPレスポンス (Header)
HTTP/1.1 200 OK
  • HTTPレスポンス (Body)
<?xml version="1.0" encoding="UTF-8"?>
<ListPartsResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <Bucket>example</Bucket>
    <Key>test2.txt</Key>
    <UploadId>NmE1OWU5Mjc3MTQwOTI5NTAwOTUxMA</UploadId>
    <Initiator>
        <ID>cln1000000001|cln1000000001</ID>
        <DisplayName>cln1000000001</DisplayName>
    </Initiator>
    <Owner>
        <ID>cln1000000001|cln1000000001</ID>
        <DisplayName>cln1000000001</DisplayName>
    </Owner>
    <StorageClass>STANDARD</StorageClass>
    <PartNumberMarker>0</PartNumberMarker>
    <NextPartNumberMarker>0</NextPartNumberMarker>
    <MaxParts>1000</MaxParts>
    <IsTruncated>false</IsTruncated>
</ListPartsResult>

POST Complete Multipart Upload - マルチパートアップロードを完了させる

概要

Upload Part - パーツをアップロード にてアップロードしたオブジェクトの断片を結合して、 一つのオブジェクトとし、マルチパートアップロードを完了します。

リクエスト
リクエストメソッド
  • POST
リクエストパス
  • パス形式の場合
    • “/${バケット名}/${オブジェクト名}”
  • VirtualHost形式の場合
    • “/${オブジェクト名}”
リクエストパラメータ
リクエストパラメータ一覧
パラメーター名 説明 Required
uploadId Initiate Multipart Uploadの結果得られたUploadIdを指定する。 署名対象文字列として評価する必要がある。 Yes
Body
  • XML形式
Request(Body)
Node名 説明 子Node (親Node) Required
CompleteMultipartUpload Request コンテナ Part, (None) Yes
Part Upload Partでアップロードしたパートの情報を格納するコンテナ PartNumber, ETag (CompleteMultipartUpload) Yes
PartNumber Upload Partで指定した各々のpartNumber None (CompleteMultipartUpload.Part) Yes
ETag Upload Partの結果、Response Headerより取得したmd5値 None (CompleteMultipartUpload.Part) Yes
レスポンス
レスポンス (Body)
  • 形式:XML
Response(Body)
Node名 説明 子Node(親Node)
CompleteMultipartUploadResult Responseのコンテナ Bucket, Key, UploadId (None)
Location 新しく作成されたオブジェクトのURL None (CompleteMultipartUploadResult)
Bucket バケット名 None (CompleteMultipartUploadResult)
Key 新しく作成されたObject Key None (CompleteMultipartUploadResult)
ETag 新しく作成された、オブジェクトのEntity Tag. オブジェクトのmd5値の場合もあるし、そうでない場合もある。 md5値でない場合は、16進数以外の文字が含まれることもあるし、32文字の16進数文字列に満たない場合も、それ以上の長さの場合もある。 None (CompleteMultipartUploadResult)
サンプルAPIコール & レスポンス
サンプルAPIコール

Multipart Upload

  • Request Header
POST /example/example.txt?uploadId=NmE1OWU5Mjc3MTQwOTI5NTAwOTUxMA HTTP/1.1
Host: str.cloudn-service.com
Date: Fri, 29 Aug 2014 02:16:17 +0000
Authorization: AWS SAMPLEAPIKEY2180912n:fb1IxbtjVuoW7Zts9lSsXXW1RVw=
  • 署名対象文字列
POST


Fri, 29 Aug 2014 02:16:17 +0000
/example/example.txt?uploadId=NmE1OWU5Mjc3MTQwOTI5NTAwOTUxMA
  • Request Body
<CompleteMultipartUpload>
  <Part>
    <PartNumber>"1"</PartNumber>
    <ETag>"jc3MTQwOTI5N"</ETag>
  </Part>
</CompleteMultipartUpload>
サンプルAPIレスポンス
  • HTTPレスポンス (Header)
HTTP/1.1 200 OK
  • HTTPレスポンス (Body)

    • None

Abort Multipart Upload - マルチパートアップロードの中止

概要

マルチパートアップロードを中止します。

リクエスト
リクエストメソッド
  • DELETE
リクエストパス
  • パス形式の場合
    • “/${バケット名}/${オブジェクト名}”
  • VirtualHost形式の場合
    • “/${オブジェクト名}”
リクエストパラメータ
リクエストパラメータ一覧
パラメーター名 説明 Required
uploadId Initiate Multipart Uploadの結果得られたUploadIdを指定する。 署名対象文字列として評価する必要がある。 Yes
Body
  • 無し
レスポンス
Header
  • 特に無し
レスポンス (Body)
  • 無し
サンプルAPIコール & レスポンス
サンプルAPIコール

Multipart Uploadの一覧を表示します。

  • Request Header
DELETE /example/example.txt?uploadId=NmE1OWU5Mjc3MTQwOTI5NTAwOTUxMA HTTP/1.1
Host: str.cloudn-service.com
Date: Fri, 29 Aug 2014 02:16:17 +0000
Authorization: AWS SAMPLEAPIKEY2180912n:fb1IxbtjVuoW7Zts9lSsXXW1RVw=
  • 署名対象文字列
DELETE


Fri, 29 Aug 2014 02:16:17 +0000
/example/example.txt?uploadId=NmE1OWU5Mjc3MTQwOTI5NTAwOTUxMA
サンプルAPIレスポンス
  • HTTPレスポンス (Header)
HTTP/1.1 204 No Content
Date: Fri, 29 Aug 2014 02:16:17 GMT
x-amz-request-id: 10C7EF007F5A11E4
  • HTTPレスポンス (Body)

    • なし