LoginSignup
4
6

More than 5 years have passed since last update.

さくらのクラウドのオブジェクトストレージを使う(docker + s3cmd)

Posted at

なかなか便利なDockerイメージができたので共有です。

何するもの?

さくらのクラウド オブジェクトストレージの管理をs3cmdで行うためのDockerコンテナです。

DockerHubで公開しています。
sacloud/s3cmd

Dockerコンテナですので、Dockerが動かせるのであればWindows/Linux/Macなどで動きます。

オブジェクトストレージって?

オブジェクトストレージとは

引用元:http://cloud.sakura.ad.jp/specification/option/#option-content03

大容量ファイルのバックアップや、静的ファイル(画像やPodcastとか)のキャッシュ付き配信とかできるやつですね。

使い方(準備)

まずはさくらのクラウドのコントロールパネルからバケットの作成をしておきます。

以下の手順でバケットを作成し、発行されたキーを控えておきましょう。

1)「オブジェクトストレージ」メニューを選択

01.png

2) 「バケットの作成」を選択

02.png

3) バケット名を入力

03.png

4) アクセスキー表示

04.png

使い方(起動)

あとは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です。

ファイルアップロード(sync)
$ 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万円クーポンプレゼントキャンペーンやってるみたいなんで、この機会に是非このコンテナをお試しください:bangbang:

4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6