金曜日
「オブジェクトストレージ」を手軽に利用する(s3cmd編)
1月27日より提供開始(2月末までβ期間)しました「 オブジェクトストレージ」にs3cmdを使ってアクセスする手順をご紹介いたします。
「オブジェクトストレージ」についてはこちらをご参照ください。
※「さくらのBASE Storage」ベータテストご利用者様へ
さくらのクラウド 「オブジェクトストレージ」では以下のようにサーバ名が変わります。
さくらのBASE Storage b.storage.sakura.ad.jp オブジェクトストレージ b.sakurastorage.jp
s3cmdを使ったアクセス方法
CentOS等が動作するサーバから、s3cmdを使ってオブジェクトストレージにアクセスする方法をご紹介します。
1. オブジェクトストレージでバケットを作成する
さくらのクラウドのコントロールパネルよりオブジェクトストレージを選択し、バケットを作成してください。
2. コントロールパネルより、アクセスキー欄のアクセスキーIDとシークレットアクセスキーを確認する
※オブジェクトストレージへのアクセスで設定等に使われる用語情報
オブジェクト :オブジェクトストレージに保存されたファイルです。
バケット :オブジェクトストレージに作成された保存領域です。
アクセスキーID :バケットへアクセスするIDです。
シークレットアクセスキー:バケットへアクセスする鍵情報です。
ストレージサーバ名 :b.sakurastorage.jp
エンドポイント :<バケット名>.<ストレージサーバ名>
3. CentOSサーバのコマンドラインから、s3cmdをインストールする
yumを使ってインストールできます。
% sudo yum install s3cmd
※ここではCentOS6.6、epelリポジトリにあるs3cmd-1.0.1を使用しています。
4. 対話的設定モードで設定を変更する
以下のコマンドで諸情報を変更します。
% s3cmd --configure
Access Key: アクセスキーID
Secret Key: シークレットアクセスキー
その他の質問項目は特に指定していただかなくて結構です。
Test access with supplied credentials? [Y/n]
サーバ名が未設定ですので、テストは行わず n を入力してください。
最後に設定をセーブして、一端終了します。
※.s3cfgファイルはホームディレクトリにセーブされます。
5. セーブされた .s3cfg ファイルを編集する
URLを変更するために、セーブされた.s3cfgファイルを変更します。以下の2行を、このとおり変更してください。
(変更前) host_base = s3.amazonaws.com host_bucket = %(bucket)s.s3.amazonaws.com (変更後) host_base = b.sakurastorage.jp host_bucket = %(bucket)s.b.sakurastorage.jp
6. アクセステスト
s3cmdのバージョンを確認します。
% s3cmd --version s3cmd version 1.0.1
s3cmdを使って状態を確認します。
% s3cmd du s3://<バケット名>
0 s3://<バケット名>//
※作成したばかりのバケット内データ量は「0」です。
これで、s3cmdを使ってファイルのアップロード、ダウンロードが可能となります。
アップロード
s3cmd put <ファイル名> s3://<バケット名>
ダウンロード
s3cmd get s3://<バケット名>/<オブジェクト名>
一覧表示
s3cmd ls s3://<バケット名>
削除
s3cmd del s3://<バケット名>/<オブジェクト名>
7. ご利用にあたってのポイント
オブジェクトストレージに保存されたオブジェクトはコントロールパネル上のオブジェクト一覧で確認できます。 s3cmdや各種ツールを使ったオブジェクトストレージ操作結果の確認としてご利用ください。
オブジェクトストレージはS3互換のAPIを備えていますが、サービスがS3と同一ではありません。オブジェクトストレージが対応していないs3cmdの一部操作ではエラーが返される場合があります。 詳細についてはObjectStorage_APIをご確認ください。
s3cmdはバージョンによって動作仕様が異なります。詳細は公式サイトをご確認ください。
動作仕様の違い例 s3cmd-1.5.0以上の場合、signatureはv4がデフォルトとなりました。オブジェクトストレージはv2対応のため「--signature-v2」オプションを使用してください。
例) s3cmd du s3://<バケット名> --signature-v2