検討中のお客様はこちら

0120-50-6065

10:00〜19:00
土日祝、年末年始除く

お申し込み

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

Description

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

Request URL

ObjectStorage API v1

PUT /v1/gpu_{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 API情報を確認する にてご確認ください。
container コンテナ名 URI アップロード先の任意のコンテナ名を指定します。
object オブジェクト名 URI 任意のオブジェクト名を指定します。
multipart-manifest   query クエリに multipart-manifest=put を設定した場合、オブジェクトは分割アップロードしたオブジェクトのマニフェストファイルとして認識されます。

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": セグメントファイルサイズ]' \
https://object-storage.gpu-sys.cloud/v1/gpu_テナントID/マニュフェストファイル用のコンテナ名/マニュフェストファイル名?multipart-manifest=put
  • Response
HTTP/1.1 201 Created
Last-Modified: Sun, 09 Aug 2020 08:50:36 GMT
Content-Length: 0
Etag: "7d057b050a18b07411f30a31828f6fbd"
Content-Type: text/html; charset=UTF-8
X-Trans-Id: tx2c3c5cd996c44523aaae9-005f2fb8db
Date: Sun, 09 Aug 2020 08:50:35 GMT

Using

  • 1.ファイルを分割し、セグメントファイルを作成します。
     ※以下では6Gの「largefile」のファイルを3G単位で分割します。
split -b 3G largefile largefile_
  • 2.マニュフェストファイル用のコンテナを作成します。
     ※以下ではコンテナ名を「slo_container」とします。
curl -i -X PUT \
-H "Accept: application/json" \
-H "X-Auth-Token: トークンID" \
https://object-storage.gpu-sys.cloud/v1/gpu_テナントID/slo_container
  • 3.手順1で作成したセグメントファイル用のコンテナを作成します。
     ※以下ではセグメントファイル用のコンテナ名を「slo_container_segment」とします。
curl -i -X PUT \
-H "Accept: application/json" \
-H "X-Auth-Token: トークンID" \
https://object-storage.gpu-sys.cloud/v1/gpu_テナントID/slo_container_segment
  • 4.手順1で作成したセグメントファイルを手順3で作成したコンテナへアップロードします。
     ※ここでは対象ファイルが2個をあるため、2回実施します。
curl -i -X PUT \
-H "Accept: application/json" \
-H "X-Auth-Token: トークンID" \
-T largefile_aa \
https://object-storage.gpu-sys.cloud/v1/gpu_テナントID/slo_container_segment/


curl -i -X PUT \
-H "Accept: application/json" \
-H "X-Auth-Token: トークンID" \
-T largefile_ab \
https://object-storage.gpu-sys.cloud/v1/gpu_テナントID/slo_container_segment/
  • 5.手順1で作成した各セグメントファイルのMD5のハッシュ値を確認します。
md5sum largefile_a*

MD5のハッシュ値 *largefile_aa
MD5のハッシュ値 *largefile_ab
  • 6.手順1で作成した各セグメントファイルのサイズを確認します。
ls -l

-rw-r--r-- 1 root root サイズ Aug  9 16:58 largefile_aa
-rw-r--r-- 1 root root サイズ Aug  9 16:58 largefile_ab
  • 7.手順2で作成したコンテナにマニュフェストファイルを作成します。
     ※ここではマニュフェストファイル名を「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": セグメントファイルサイズ}]' \
https://object-storage.gpu-sys.cloud/v1/gpu_テナントID/slo_container/manifestfile?multipart-manifest=put