なかなか便利なDockerイメージができたので共有です。
何するもの?
さくらのクラウド オブジェクトストレージの管理をs3cmdで行うためのDockerコンテナです。
DockerHubで公開しています。
sacloud/s3cmd
Dockerコンテナですので、Dockerが動かせるのであればWindows/Linux/Macなどで動きます。
オブジェクトストレージって?
引用元:http://cloud.sakura.ad.jp/specification/option/#option-content03
大容量ファイルのバックアップや、静的ファイル(画像やPodcastとか)のキャッシュ付き配信とかできるやつですね。
使い方(準備)
まずはさくらのクラウドのコントロールパネルからバケットの作成をしておきます。
以下の手順でバケットを作成し、発行されたキーを控えておきましょう。
1)「オブジェクトストレージ」メニューを選択
2) 「バケットの作成」を選択
3) バケット名を入力
4) アクセスキー表示
使い方(起動)
あとはDockerコンテナを起動するだけです。
まずは先ほど控えたアクセスキーを環境変数に設定しておきましょう。
$ export ACCESS_KEY=アクセスキーID
$ export SECRET_KEY=シークレットアクセスキー
コマンドの書式
基本は以下の書式で利用します。
$ docker run -it --rm -e ACCESS_KEY -e SECRET_KEY -v $PWD:/work \
sacloud/s3cmd [s3cmdのサブコマンド] [s3cmd引数]
アクセスキーとシークレットキーを環境変数で渡してあげます。
VOLUMEについてはお好みのディレクトリを/work
などに割り当ててください。
(上の例ではカレントディレクトリを割り当てています)
なお、コンテナのWORKDIR
は/work
になっているため、ここに割り当てるとファイルパス指定が楽です。
以下で具体的なコマンド実行例を紹介します。
バケット一覧の表示
$ docker run -it --rm -e ACCESS_KEY -e SECRET_KEY -v $PWD:/work \
sacloud/s3cmd ls
ls
サブコマンドでバケットの一覧が表示されます。
バケット内のオブジェクト一覧表示
$ docker run -it --rm -e ACCESS_KEY -e SECRET_KEY -v $PWD:/work \
sacloud/s3cmd ls s3://samples
ls
サブコマンドの引数にs3://バケット名
を指定すると、バケット内のオブジェクトが一覧表示されます。
ファイルのアップロード(ファイル単位)
$ docker run -it --rm -e ACCESS_KEY -e SECRET_KEY -v $PWD:/work \
sacloud/s3cmd put test.txt s3://samples/
put
サブコマンドでファイルのアップロードを行います。
ファイルのアップロード(ディレクトリ単位)
$ docker run -it --rm -e ACCESS_KEY -e SECRET_KEY -v $PWD:/work \
sacloud/s3cmd put -r images/ s3://samples/images/
put
サブコマンドに-rオプションをつけることで再帰的にアップロードを行います。
なお、sync
サブコマンドでもOKです。
$ docker run -it --rm -e ACCESS_KEY -e SECRET_KEY -v $PWD:/work \
sacloud/s3cmd sync images/ s3://samples/images/
ファイルのダウンロード
$ docker run -it --rm -e ACCESS_KEY -e SECRET_KEY -v $PWD:/work \
sacloud/s3cmd get s3://samples/test.txt ./test.txt
ファイルのダウンロードはget
サブコマンドです。
バケット内のオブジェクトの削除
$ docker run -it --rm -e ACCESS_KEY -e SECRET_KEY -v $PWD:/work \
sacloud/s3cmd del s3://samples/test.txt
削除はdel
サブコマンドです。
その他(ヘルプ)
その他のコマンドや、各コマンドのオプションを知りたい時はヘルプを利用してください。
$ docker run -it --rm -e ACCESS_KEY -e SECRET_KEY -v $PWD:/work \
sacloud/s3cmd --help
おわりに
Dockerコンテナになっているので、手元のWindowsマシンから直接オブジェクトストレージへアップロード、なんていうのも簡単にできちゃいますね。
なお、オブジェクトストレージでクーポン使えるのか不安だったのですが問題なく使えました。
今月(2016年7月)は2万円クーポンプレゼントキャンペーンやってるみたいなんで、この機会に是非このコンテナをお試しください