ラージオブジェクトアップロード(Static Large Object) | Z.com Cloud パブリッククラウド リファレンス

ラージオブジェクトアップロード(Static Large Object)

Description

5GBより大きいファイルをアップロードする際に使用します。
オブジェクトを5GB未満のファイルサイズに分割してアップロードし、仮想的なひとつのオブジェクトとしてダウンロード可能とします。
DLO(Dynamic Large Object)と比べ完全性、信頼性が向上します。

Request URL

ObjectStorage API v1

PUT /v1/ze_{account}/{container}/{object}

Request Json

This operation does not accept a request body.

Request Parameters

Parameter Value Style Description
X-Auth-Token Userトークン header トークンID
account テナントID URI テナントID
container コンテナ名 URI コンテナ名
object オブジェクト名 URI オブジェクト名

Response

  • Normal response codes
201

Example

  • Request
curl -i -X PUT \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Auth-Token: トークンID" \
-d '[{"path" : "セグメントファイル用のコンテナ名/セグメントファイル名_aa", "etag": "MD5のハッシュ値", "size_bytes": セグメントファイルサイズ},
{"path" : "セグメントファイル用のコンテナ名/セグメントファイル名_ab", "etag": "MD5のハッシュ値", "size_bytes": セグメントファイルサイズ},
{"path" : "セグメントファイル用のコンテナ名/セグメントファイル名_ac", "etag": "MD5のハッシュ値", "size_bytes": セグメントファイルサイズ},
{"path" : "セグメントファイル用のコンテナ名/セグメントファイル名_ad", "etag": "MD5のハッシュ値", "size_bytes": セグメントファイルサイズ},
{"path" : "セグメントファイル用のコンテナ名/セグメントファイル名_ae", "etag": "MD5のハッシュ値", "size_bytes": セグメントファイルサイズ},
{"path" : "セグメントファイル用のコンテナ名/セグメントファイル名_af", "etag": "MD5のハッシュ値", "size_bytes": セグメントファイルサイズ]' \
https://object-storage.jpt1.cloud.z.com/v1/ze_テナントID/manifestファイル用のコンテナ名/manifestファイル名?multipart-manifest=put
  • Response
HTTP/1.1 201 Created
Last-Modified: Tue, 23 Aug 2016 06:42:14 GMT
Content-Length: 0
Etag: 6ca7bdf80fae05caa4bae626b2e207d8
Content-Type: text/html; charset=UTF-8
X-Trans-Id: tx3ef27a06bb1249b9a9263-0057bbf045
Date: Tue, 23 Aug 2016 06:42:13 GMT

Using

1.ファイルを分割します。
※以下では1G単位で分割します。またファイル名を「largefile」とします。

split -b 1G largefile largefile_

2.manifestファイル用のコンテナを作成します。
※以下ではコンテナ名を「slo_container」とします。

curl -i -X PUT \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Auth-Token: トークンID" \
https://object-storage.jpt1.cloud.z.com/v1/ze_テナントID/slo_container

3.セグメントファイル用のコンテナを作成します。
※以下ではセグメントファイル用のコンテナ名を「slo_container_segment」とします。

curl -i -X PUT \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Auth-Token: トークンID" \
https://object-storage.jpt1.cloud.z.com/v1/ze_テナントID/slo_container_segment

4.セグメントファイルをアップロードします。

curl -i -X PUT -H "X-Auth-Token: トークンID" https://object-storage.jpt1.cloud.z.com/v1/ze_テナントID/slo_container_segment/ -T largefile_aa
curl -i -X PUT -H "X-Auth-Token: トークンID" https://object-storage.jpt1.cloud.z.com/v1/ze_テナントID/slo_container_segment/ -T largefile_ab
curl -i -X PUT -H "X-Auth-Token: トークンID" https://object-storage.jpt1.cloud.z.com/v1/ze_テナントID/slo_container_segment/ -T largefile_ac
curl -i -X PUT -H "X-Auth-Token: トークンID" https://object-storage.jpt1.cloud.z.com/v1/ze_テナントID/slo_container_segment/ -T largefile_ad
curl -i -X PUT -H "X-Auth-Token: トークンID" https://object-storage.jpt1.cloud.z.com/v1/ze_テナントID/slo_container_segment/ -T largefile_ae
curl -i -X PUT -H "X-Auth-Token: トークンID" https://object-storage.jpt1.cloud.z.com/v1/ze_テナントID/slo_container_segment/ -T largefile_af

5.各セグメントファイルのMD5のハッシュ値を確認

md5sum largefile_a*
MD5のハッシュ値 *largefile_aa
MD5のハッシュ値 *largefile_ab
MD5のハッシュ値 *largefile_ac
MD5のハッシュ値 *largefile_ad
MD5のハッシュ値 *largefile_ae
MD5のハッシュ値 *largefile_af

6.各セグメントファイルのファイルサイズを確認

ls -l

7.manifestファイルを作成します。
※ここではmanifestファイル名を「manifestfile」とします。

curl -i -X PUT \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "X-Auth-Token: トークンID" \
-d '[{"path" : "slo_container_segment/largefile_aa", "etag": "MD5のハッシュ値", "size_bytes": セグメントファイルサイズ},
{"path" : "slo_container_segment/largefile_ab", "etag": "MD5のハッシュ値", "size_bytes": セグメントファイルサイズ},
{"path" : "slo_container_segment/largefile_ac", "etag": "MD5のハッシュ値", "size_bytes": セグメントファイルサイズ},
{"path" : "slo_container_segment/largefile_ad", "etag": "MD5のハッシュ値", "size_bytes": セグメントファイルサイズ},
{"path" : "slo_container_segment/largefile_ae", "etag": "MD5のハッシュ値", "size_bytes": セグメントファイルサイズ},
{"path" : "slo_container_segment/largefile_af", "etag": "MD5のハッシュ値", "size_bytes": セグメントファイルサイズ}]' \
https://object-storage.jpt1.cloud.z.com/v1/ze_テナントID/slo_container/manifestfile?multipart-manifest=put