IIJGIO ストレージ&アナリシスサービス ストレージ専用コマンドラインツール
ご利用の環境に該当するパッケージを以下からダウンロードしてご利用ください。
- Linux (RHEL/CentOS kernel-2.6.18-274 以降、CentOS 6.0 以降を推奨)
- 64 bit: dagtools-linux-amd64-1.6.0.tar.gz
- 32 bit: dagtools-linux-386-1.6.0.tar.gz
- Mac OS X (10.6 以降)
- 64 bit: dagtools-darwin-amd64-1.6.0.tar.gz
- 32 bit: dagtools-darwin-386-1.6.0.tar.gz
- Windows (XP 以降)
- 64 bit: dagtools-windows-amd64-1.6.0.zip
- 32 bit: dagtools-windows-386-1.6.0.zip
Warning
- CentOS 5.6 x86-64 (kernel-2.6.18-238) の環境では Linux 64 bit版のパッケージは動作しないため、Linux 32 bit版のパッケージをご利用ください。
[dagtools] セクション
proxy | HTTP Proxy を指定 |
verbose | コマンドの実行内容を表示(-v オプションと同じ) |
debug | デバッグモードで実行(-d オプションと同じ) |
concurrency | 並列実行数(default: 1)
マルチパートアップロードの際のパートのアップロードの並列実行数となります。
|
tempDir | 一時ファイルの保存先
標準入力を使用したアップロードの場合は一時的にこのディレクトリの保存されます。
|
[logging] セクション
type | ログ出力の種類(none, file, stdout, stderr) |
file | file タイプ時の出力先のファイルパス |
[storage] セクション
endpoint | IIJGIO ストレージ&アナリシスサービスのStorage APIのエンドポイント |
accessKeyId | APIのアクセスキーID |
secretAccessKey | APIのシークレットアクセスキー |
secure | SSL/TLSプロトコルを用いた通信の暗号化(HTTPS)を使用するかどうか(true,false) |
multipartChunkSize | マルチパートアップロードのチャンクサイズ(Bytes)。
アップロードするファイルが指定のサイズより大きい場合にはマルチパートアップロードとなり、
このサイズで分割してアップロードします。このサイズを下回る場合にはPUT Objectとなります。
|
retry | HTTP/HTTPS リクエスト失敗時のリトライ回数 (デフォルト: 2)
リトライしない場合は 0 を指定してください。
|
retryInterval | リトライを実施する間隔(ミリ秒単位, デフォルト: 3000)
1秒 = 1000 となります。
|
abortOnFailure | マルチパートアップロードを使用したアップロードに失敗した場合に、該当のマルチパートアップロ
ードを削除するかどうか(true,false)
マルチパートアップロードの残留を防ぐ場合に有効にしてください。マルチパートアップロードを再
開する場合は false を指定してください。
|
[dagtools] debug = false verbose = true proxy = concurrency = 2 tempDir = /var/tmp [logging] type = file file = dagtools.log [storage] endpoint = storage-dag.iijgio.com accessKeyId = <Access Key Id> secretAccessKey = <Secret Access Key> secure = true multipartChunkSize = 1073741824 # 1GB retry = 2 # number of retries retryInterval = 3000 # 3.0 seconds abortOnFailure = true
Usage: dagtools [-h] [-d] [-v] [-f <config file>] <command> [<args>] Options: -d debug mode -f string specify an alternate configuration file (default: ./dagtools.ini or /etc/dagtools.ini) -h print a help message and exit -v verbose mode -version show version Commands: ls: list buckets or objects cat: get an object and print to standard output get: get an object and write to a file exist: check to exist buckets/objects rm: delete a bucket or object[s] put: put a bucket or object[s] help: print a command usage cp: copy object or directory region: display all regions info sync: synchronize with objects on DAG storage and local files policy: manage a bucket policy (put, cat, rm) space: display used storage space traffic: display network traffics uploads: manage multipart-upload[s]
デフォルトのリージョン(設定ファイルのエンドポイント)でのバケット作成:
$ dagtools put mybucket
リージョンを指定してバケット作成:
$ dagtools put -region=ap1(or ap2) mybucket
単一のファイルをアップロード:
$ dagtools put path/to/file mybucket:foo/bar/my-object or $ dagtools put mybucket:foo/bar/my-object < path/to/file
複数のファイルをアップロード:
$ dagtools put path/to/file1 path/to/file2 mybucket:foo/bar/ $ dagtools put path/to/file* mybucket:foo/bar/
ディレクトリを指定してアップロード:
# 以下の場合はオブジェクトキーにディレクトリ名を含みます (foo/bar/dir/...) $ dagtools put -r path/to/dir/ mybucket:foo/bar/ # 以下の場合はオブジェクトキーにディレクトリ名は含みません (foo/bar/...) $ dagtools put -r path/to/dir/ mybucket:foo/bar
マルチパートアップロードの再開:
$ dagtools put -upload-id=E-Ckgc1u-fAEIhDcPYcx430ygDjDq1IO7zILJF9W1HpUrbjq3UVlbV23UA45UFNS9nocgth7vsOh.zWaqGm.Jg-UGRiX6WCBPvNM_teEwa4- path/to/file mybucket:foo/bar/my-object
オブジェクトをバケット直下にコピー:
$ dagtools cp mybucket1:file1 mybucket2:
オブジェクトをディレクトリにコピー:
$ dagtools cp mybucket1:file1 mybucket2:foo/
ディレクトリをバケットにコピー:
$ dagtools cp -r mybucket1:foo/bar/ mybucket2:foo/
バケットの中身をすべて別バケットにコピー:
$ dagtools cp -r mybucket1: mybucket2:
Note
ディレクトリ・バケットをコピーする場合は、-rオプションを使用してください
$ dagtools region
カレントディレクトリに書き出す:
$ dagtools get mybucket:foo/bar/my-object
Note
上記の例では my-object というファイル名でカレントディレクトリに保存されます。
書き込み先を指定して書き出す:
$ dagtools get mybucket:foo/bar/my-object path/to/file
ディレクトリを指定して一括で取得する:
$ dagtools get -r mybucket:foo/bar/dir/ path/to/directory/
Note
- 末尾にスラッシュを付けた場合には、そのディレクトリにサブディレクトリを作成します。(上記の例では
path/to/directory/dar/
が作られます) - 逆に付けなかった場合には、そのディレクトリ名に置き換えられます。(上記の例では
foo/bar/dir/
はpath/to/directory/
として格納します)
オブジェクトの内容を表示(標準出力):
$ dagtools cat mybucket:foo/bar/my-object
空のバケットを削除:
$ dagtools rm mybucket
Note
オブジェクトが1つ以上存在する場合は削除されません。
バケット内の全てオブジェクトも一緒に削除:
$ dagtools rm -r mybucket
単一のオブジェクトを削除:
$ dagtools rm mybucket:foo/bar/my-object
ディレクトリを指定して削除:
$ dagtools rm -r mybucket:foo/bar/
ファイルのプレフィックスを指定して削除:
$ dagtools rm "mybucket:foo/bar/my-*"
Note
削除したオブジェクトを表示:
$ dagtools rm -v -r mybucket:foo/
$ dagtools ls
バケットが存在するリージョンを表示する:
$ dagtools ls -region
ルートディレクトリのオブジェクト一覧:
$ dagtools ls mybucket
バケットの存在するリージョンを表示する:
$ dagtools ls -region mybucket
指定したディレクトリのオブジェクト一覧:
$ dagtools ls mybucket:foo or $ dagtools ls mybucket:foo/
オブジェクトのサイズを読みやすい形式(Human-Readable)で表示:
$ dagtools ls -h mybucket:foo
サブディレクトリを再帰的に表示:
$ dagtools ls -r mybucket:foo
指定したファイルのプレフィックスに一致するオブジェクトのみ表示:
$ dagtools ls "mybucket:foo/bar/my*"
Note
TSV形式で表示:
$ dagtools ls -tsv mybucket:foo
JSON形式で表示:
$ dagtools ls -json mybucket:foo
ETagも含めてリストを表示する:
$ dagtools ls -etag mybucket:foo
バケット名とオブジェクトキーに一致するマルチパートアップロード一覧:
$ dagtools uploads ls mybucket:foo
バケットの全てのマルチパートアップロードを表示:
$ dagtools uploads ls -r mybucket
バケット名とオブジェクトキーに一致する進行中のマルチパートアップロードの削除:
$ dagtools uploads rm mybucket:foo
アップロードIDを指定して削除:
$ dagtools uploads rm mybucket:foo:E-Ckgc1u-fAEIhDcPYcx430ygDjDq1IO7zILJF9W1HpUrbjq3UVlbV23UA45UFNS9nocgth7vsOh.zWaqGm.Jg-UGRiX6WCBPvNM_teEwa4-
バケット内の全ての進行中のマルチパートアップロードを削除:
$ dagtools uploads rm -r mybucket
- ローカルのディレクトリとDAGストレージのバケット/ディレクトリ間で片方向の同期を行う機能です。
- ファイルの更新日時とサイズを元に変更を検出し、2回目以降の同期は変更されているファイルのみアップロード/ダウンロードします。
Note
注意: ファイルの削除は同期されません
DAGストレージからローカルのディレクトリに同期:
$ dagtools sync mybucket:foo/bar/ /path/to/local-dir/
ローカルのディレクトリからDAGストレージに同期:
$ dagtools sync /path/to/local-dir/ mybucket:foo/bar/
同期の状況を表示:
$ dagtools -v sync /path/to/local-dir/ mybucket:foo/bar/
確認(dry-run):
$ dagtools -v sync -n /path/to/local-dir/ mybucket:foo/bar/
$ dagtools policy put mybucket policy.json or $ dagtools policy put mybucket < policy.json
標準出力に表示:
$ dagtools policy cat mybucket
$ dagtools policy rm mybucket
デフォルトのリ-ジョンにおけるストレージ使用量の取得:
$ dagtools space
リージョンを指定してストレージ使用量を取得:
$ dagtools space -region=ap1(or ap2)
全てのリージョンでのストレージ使用量を取得:
$ dagtools space -t
- -regionオプションと-tオプションは同時に使用することはできない
日付を指定して取得:
$ dagtools traffic 20150401
先月1日から今日までの一覧を取得する:
$ dagtools traffic -b 1
リージョンを指定して取得:
$ dagtools traffic -region=ap1 20150401
全リージョンでのネットワーク通信料を取得
$ dagtools traffic -t 20150401
バケットの存在確認:
$ dagtools exist mybucket
オブジェクトの存在確認:
$ dagtools exist mybucket:foo
バケットが存在するリージョンも表示:
$ dagtools exist -region mybucket:foo
Note
- 終了ステータスで結果を確認することができます。
- 存在する場合:
0
- 存在しない場合(エラー):
1
- 存在する場合:
- 表示オプション(
-v
)が有効の場合は標準出力に結果を表示します。 - コマンド引数に複数のバケットまたはオブジェクトを指定することもできます。
終了ステータスはdagtools返されたサービスからのレスポンス内容を反映します。
Note
- 終了ステータス
- レスポンスが2xxだった場合:
0
- レスポンスが4xx又は5xxだった場合:
1
- レスポンスが2xxだった場合:
終了ステータスは、一般的な方法でスクリプトから参照する事が可能です。 たとえばWindowsであれば環境変数 %ERRORLEVEL% を参照する事で、またLinuxであれば $? を参照する事で値を確認できます。
dagtoolsが何らかのエラーを受け取った場合、以下のフォーマットで標準エラー出力にメッセージが出力されます。
Note
[Error] <レスポンスコード> <メッセージ> (<リクエストID>)
- レスポンスコードは、受信したHTTPレスポンスコードです。
- メッセージは、発生した問題を記述したメッセージです。
- リクエストIDは個々のリクエストに付与される識別子で、サポートへのお問い合わせの際にお知らせ頂くものです。