2016年7月5日火曜日

[IDCF] IDCFのオブジェクトストレージを「s3cmd」で操作する


IDCFの「オブジェクトストレージ」を「s3cmd」で操作してみました!

IDCFのドキュメントはあるんですが、2016年6月現在「s3cmd」のバージョンが古かったので、
ハマりました!メモっておきマース!


もくじ



環境

  • CentOS 6.8
  • s3cmd 1.6.1(epel)
  • epelリポジトリ導入済み
  • IDCFオブジェクトストレージAPI 接続情報取得済み

IDCFのドキュメント

s3cmd のご利用方法|IDCFヘルプサイト

s3cmd のインストール

epelのリポジトリを導入済みで、話を進めます!
sudo yum install s3cmd --enablerepo epel


Amazon S3 Tools: S3cmd News

s3cmd の設定

s3cmd --configureで、API関連の設定以外はすべてデフォルトで!
$ s3cmd --configure

Enter new values or accept defaults in brackets with Enter.
Refer to user manual for detailed description of all options.

Access key and Secret key are your identifiers for Amazon S3. Leave them empty for using the env variables.
Access Key: # コントロールパネルで発行したAccess Keyを入力
Secret Key: # コントロールパネルで発行したSecret Keyを入力
Default Region [US]:

Encryption password is used to protect your files from reading
by unauthorized persons while in transfer to S3
Encryption password:
Path to GPG program [/usr/bin/gpg]:

When using secure HTTPS protocol all communication with Amazon S3
servers is protected from 3rd party eavesdropping. This method is
slower than plain HTTP, and can only be proxied with Python 2.7 or newer
Use HTTPS protocol [Yes]:

New settings:
  Access Key:
  Secret Key:
  Default Region: US
  Encryption password:
  Path to GPG program: /usr/bin/gpg
  Use HTTPS protocol: True
  HTTP Proxy server name:
  HTTP Proxy server port: 0

Test access with supplied credentials? [Y/n] n

Save settings? [y/N] y
Configuration saved to '/home/snickerjp/.s3cfg'
  • 設定ファイル
https接続前提の設定です!
--- /home/snickerjp/.s3cfg.dist 2016-07-05 19:26:35.103986993 +0900
+++ /home/snickerjp/.s3cfg      2016-07-05 19:29:50.329986811 +0900
@@ -29,8 +29,8 @@
 gpg_encrypt = %(gpg_command)s -c --verbose --no-use-agent --batch --yes --passphrase-fd %(passphrase_fd)s -o %(output_file)s %(input_file)s
 gpg_passphrase =
 guess_mime_type = True
-host_base = s3.amazonaws.com
-host_bucket = %(bucket)s.s3.amazonaws.com
+host_base = ds.jp-xxx.xxx.com # コントロールパネルでエンドポイント確認
+host_bucket = %(bucket)s.ds.jp-xxx.xxx.com # コントロールパネルでエンドポイント確認
 human_readable_sizes = False
 invalidate_default_index_on_cf = False
 invalidate_default_index_root_on_cf = True
@@ -55,9 +55,9 @@
 requester_pays = False
 restore_days = 1
 secret_key =
-send_chunk = 65536
+send_chunk = 32768
 server_side_encryption = False
-signature_v2 = False
+signature_v2 = True
 simpledb_host = sdb.amazonaws.com
 skip_existing = False
 socket_timeout = 300
signature_v2 = Trueここが、キモ!


オブジェクトストレージの操作

  • バケット参照
 # s3cmd ls

  • バケット内参照
 # s3cmd ls s3://バケット名
  • ディレクトリ内参照
  # s3cmd ls s3://バケット名/ディレクトリ名/
  最後の/は必須です。
  • バケット作成
 # s3cmd mb s3://バケット名

  • オブジェクトアップロード
 # s3cmd put オブジェクト名 s3://バケット名

  • オブジェクト上書き
 # s3cmd put オブジェクト名A s3://バケット名/オブジェクト名A
  • ディレクトリアップロード
 # s3cmd put -r ディレクトリ名 s3://バケット名


s3cmdのコマンド一覧 | オブジェクトストレージ

関連サイト



オブジェクトストレージ 特長|クラウドならIDCフロンティア

MORIO Dojo に入門してみますか!!?

MORIO Dojo ‐ IDCFクラウド アンバサダープログラム‐|クラウドならIDCフロンティア


Zenback