オブジェクトストレージ
操作例:cURL
curlとは?
curlとは、様々なファイル転送用のプロトコルをサポートするコマンドライン・ツールです。
以下ではcurl によるオブジェクトストレージの操作方法をご案内します。
なお、オブジェクトストレージの操作にはAPI情報を利用しますので、予めご確認ください。
1.該当のサーバーにSSHもしくはコンソールにて接続します。
2.API認証を行い、トークンの取得ならびに発行されたトークンIDを確認します。
認証のエンドポイントURL | (コントロールパネル内のAPI情報から「identity vX.X (認証)」をご確認ください) |
---|---|
ユーザー名 | (コントロールパネルログインのユーザー名) |
パスワード | (コントロールパネルログインのパスワード) |
テナントID | (コントロールパネル内のAPI情報から「テナントID」をご確認ください) |
# curl -i '認証のエンドポイントURL/tokens' -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"auth":{"passwordCredentials":{"username":"ユーザー名","password":"パスワード"},"tenantId":"テナントID"}}' ※出力された情報について、「{"access":」の「"token"」に表示されている「"id"」情報がトークンIDになります。
3.オブジェクトストレージのエンドポイントURLに接続します。
オブジェクトストレージのエンドポイントURL | (コントロールパネル内のAPI情報から「Object Storage API vX (オブジェクトストレージ)」をご確認ください) |
---|
# curl -i -X HEAD -H "X-Auth-Token: トークンID" オブジェクトストレージのエンドポイントURL
4.アップロード・ダウンロードなどのオブジェクト操作が可能です。
コンテナリストの確認
# curl -i -X GET -H "X-Auth-Token: トークンID" オブジェクトストレージのエンドポイントURL
コンテナの作成
# curl -i -X PUT -H "X-Auth-Token: トークンID" オブジェクトストレージのエンドポイントURL/コンテナ名
コンテナ情報の確認
# curl -i -X HEAD -H "X-Auth-Token: トークンID" オブジェクトストレージのエンドポイントURL/コンテナ名
コンテナの削除
# curl -i -X DELETE -H "X-Auth-Token: トークンID" オブジェクトストレージのエンドポイントURL/コンテナ名
オブジェクトリストの確認
# curl -i -X GET -H "X-Auth-Token: トークンID" オブジェクトストレージのエンドポイントURL/コンテナ名
オブジェクトのアップロード
# curl -i -X PUT -H "X-Auth-Token: トークンID" オブジェクトストレージのエンドポイントURL/コンテナ名/ -T アップロードするデータのパス
ラージオブジェクトのアップロード(Dynamic Large Objects)
1.該当ファイルを分割します。※以下では1G単位で分割します。 # split -b 1G -d ファイル名 segment_ファイル名_ 2.トークンID発行 # curl -i '認証のエンドポイントURL/tokens' -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"auth":{"passwordCredentials":{"username":"ユーザー名","password":"パスワード"},"tenantId":"テナントID"}}' 3.コンテナを作成 # curl -i -X PUT -H "X-Auth-Token: トークンID" オブジェクトストレージのエンドポイントURL/コンテナ名 4.分割ファイルのアップロード用のコンテナ作成 # curl -i -X PUT -H "X-Auth-Token: トークンID" オブジェクトストレージのエンドポイントURL/ファイル名_segments 5.分割ファイルのアップロード # curl -i -X PUT -H "X-Auth-Token: トークンID" オブジェクトストレージのエンドポイントURL/ファイル名_segments/ -T アップロードする分割ファイル1 # curl -i -X PUT -H "X-Auth-Token: トークンID" オブジェクトストレージのエンドポイントURL/ファイル名_segments/ -T アップロードする分割ファイル2 # curl -i -X PUT -H "X-Auth-Token: トークンID" オブジェクトストレージのエンドポイントURL/ファイル名_segments/ -T アップロードする分割ファイル3 # curl -i -X PUT -H "X-Auth-Token: トークンID" オブジェクトストレージのエンドポイントURL/ファイル名_segments/ -T アップロードする分割ファイル4 # curl -i -X PUT -H "X-Auth-Token: トークンID" オブジェクトストレージのエンドポイントURL/ファイル名_segments/ -T アップロードする分割ファイル5 6.manifestファイルの作成 # curl -i -X PUT -H "X-Auth-Token: トークンID" -H 'X-Object-Manifest: ファイル名_segments/segment_ファイル名_' オブジェクトストレージのエンドポイントURL/「2.」で作成したコンテナ名/ファイル名 --data-binary ''
ラージオブジェクトのアップロード(static Large Object)
1.該当ファイルを分割します。※以下では1G単位で分割します。 # split -b 1G -d ファイル名 segment_ファイル名_ 2.トークンID発行 # curl -i '認証のエンドポイントURL/tokens' -X POST -H 'Accept: application/json' -H 'Content-Type: application/json' -d '{"auth":{"passwordCredentials":{"username":"ユーザー名","password":"パスワード"},"tenantId":"テナントID"}}' 3.コンテナを作成 # curl -i -X PUT -H "X-Auth-Token: トークンID" オブジェクトストレージのエンドポイントURL/コンテナ名 4.作成した分割ファイル用のコンテナ作成 # curl -i -X PUT -H "X-Auth-Token: トークンID" オブジェクトストレージのエンドポイントURL/コンテナ名 5.分割ファイルを分割ファイル用のコンテナにアップロード # curl -i -X PUT -H "X-Auth-Token: トークンID" オブジェクトストレージのエンドポイントURL/分割ファイル用のコンテナ名/ -T segment_ファイル名_00 # curl -i -X PUT -H "X-Auth-Token: トークンID" オブジェクトストレージのエンドポイントURL/分割ファイル用のコンテナ名/ -T segment_ファイル名_01 ↓ # curl -i -X PUT -H "X-Auth-Token: トークンID" オブジェクトストレージのエンドポイントURL/分割ファイル用のコンテナ名/ -T segment_ファイル名_05 6.各分割ファイルのMD5のハッシュ値とファイルサイズを確認 # md5sum segment_ファイル名_0* MD5のハッシュ値 segment_ファイル名_00 MD5のハッシュ値 segment_ファイル名_01 MD5のハッシュ値 segment_ファイル名_02 MD5のハッシュ値 segment_ファイル名_03 MD5のハッシュ値 segment_ファイル名_04 MD5のハッシュ値 segment_ファイル名_05 # ls -l -rw-r--r-- 1 root root 6396313600 4月 24 13:40 2015 ファイル名 -rw-r--r-- 1 root root 1073741824 5月 18 14:32 2015 segment_ファイル名_00 -rw-r--r-- 1 root root 1073741824 5月 18 14:32 2015 segment_ファイル名_01 -rw-r--r-- 1 root root 1073741824 5月 18 14:32 2015 segment_ファイル名_02 -rw-r--r-- 1 root root 1073741824 5月 18 14:32 2015 segment_ファイル名_03 -rw-r--r-- 1 root root 1073741824 5月 18 14:32 2015 segment_ファイル名_04 -rw-r--r-- 1 root root 1027604480 5月 18 14:33 2015 segment_ファイル名_05 7.manifestファイルの作成 # curl -i -X PUT -H "Accept: application/json" -H "X-Auth-Token: トークンID" -d '[{"path" : "分割ファイル用のコンテナ名/segment_ファイル名_00", "etag": "MD5のハッシュ値", "size_bytes": ファイルサイズ},{"path" : "分割ファイル用のコンテナ名/segment_ファイル名_01", "etag": "MD5のハッシュ値", "size_bytes": ファイルサイズ},{"path" : "分割ファイル用のコンテナ名/segment_ファイル名_02", "etag": "MD5のハッシュ値", "size_bytes": ファイルサイズ},{"path" : "分割ファイル用のコンテナ名/segment_ファイル名_03", "etag": "MD5のハッシュ値", "size_bytes": ファイルサイズ},{"path" : "分割ファイル用のコンテナ名/segment_ファイル名_04", "etag": "MD5のハッシュ値", "size_bytes": ファイルサイズ},{"path" : "分割ファイル用のコンテナ名/segment_ファイル名_05", "etag": "MD5のハッシュ値", "size_bytes": ファイルサイズ}]' オブジェクトストレージのエンドポイントURL/manifestファイル用のコンテナ名/ファイル名?multipart-manifest=put
オブジェクトのダウンロード
# curl -O -X GET -H "X-Auth-Token: トークンID" オブジェクトストレージのエンドポイントURL/コンテナ名/オブジェクト名
ラージオブジェクトのダウンロード
# curl -O -X GET -H "X-Auth-Token: トークンID" オブジェクトストレージのエンドポイントURL/コンテナ名/オブジェクト名 > オブジェクト名
オブジェクトの削除
# curl -i -X DELETE -H "X-Auth-Token: トークンID" オブジェクトストレージのエンドポイントURL/コンテナ名/オブジェクト名
オブジェクトのスケジュール削除
・指定した時間の経過後に削除(秒) # curl -i -X POST -H "Accept: application/json" -H "X-Auth-Token: トークンID" -H 'X-Delete-After: 秒数' オブジェクトストレージのエンドポイントURL/コンテナ名/オブジェクト名 ・指定した日時に削除 1.指定する日時をエポックフォーマットに変換 # date +%s -d "2015/5/8 02:23:00" 1431019380 2.エポックフォーマットでスケジュール削除のリクエストを送信 # curl -i -X POST -H "Accept: application/json" -H "X-Auth-Token: トークンID" -H 'X-Delete-At: エポックフォーマット日時' オブジェクトストレージのエンドポイントURL/コンテナ名/オブジェクト名