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 Paramters
Parameter | Valu | 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.odc01.eva-clouds.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.odc01.eva-clouds.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.odc01.eva-clouds.com/v1/ze_テナントID/slo_container_segment |
4.セグメントファイルをアップロードします。
curl -i -X PUT -H “X-Auth-Token: トークンID” https://object-storage.odc01.eva-clouds.com/v1/ze_テナントID/slo_container_segment/ -T largefile_aa curl -i -X PUT -H “X-Auth-Token: トークンID” https://object-storage.odc01.eva-clouds.com/v1/ze_テナントID/slo_container_segment/ -T largefile_ab curl -i -X PUT -H “X-Auth-Token: トークンID” https://object-storage.odc01.eva-clouds.com/v1/ze_テナントID/slo_container_segment/ -T largefile_ac curl -i -X PUT -H “X-Auth-Token: トークンID” https://object-storage.odc01.eva-clouds.com/v1/ze_テナントID/slo_container_segment/ -T largefile_ad curl -i -X PUT -H “X-Auth-Token: トークンID” https://object-storage.odc01.eva-clouds.com/v1/ze_テナントID/slo_container_segment/ -T largefile_ae curl -i -X PUT -H “X-Auth-Token: トークンID” https://object-storage.odc01.eva-clouds.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_segments/segment_6000M_file_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.odc01.eva-clouds.com/v1/ze_テナントID/slo_container/manifestfile?multipart-manifest=put |