boto でさくらのBASE Storageを弄る

覚えてたので、ベータ期間中は無料らしいということもあって、ちょっと遊んでみました。

~/.boto に下記を追加

[Credentials]
aws_access_key_id = <ユーザ名>
aws_secret_access_key = <トークン>

[s3]
host = b.storage.sakura.ad.jp

あとは普通に boto で S3 触るのと同じ。というか世に出てる S3 のサンプルそのままでイケた。

ファイルのアップロード

goro@flora:~$ python
Python 2.7.5 (default, Aug 25 2013, 00:04:04)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import boto
>>> conn = boto.connect_s3()
>>> b = conn.get_bucket('sample_namespace')
>>> b.list()
<boto.s3.bucketlistresultset.BucketListResultSet object at 0x103bf5150>
>>> k = b.new_key('Mii.jpg')
>>> k.set_contents_from_filename('Mii.jpg')
59944
>>>
goro@flora:~$ ls -l Mii.jpg
-rw-r--r--  1 goro  staff  59944  2  4 20:05 Mii.jpg
goro@flora:~$ openssl sha1 Mii.jpg
SHA1(Mii.jpg)= fae6000009ba8a1f4b195dbb8c3a6b877938afca
goro@flora:~$

アップロードしたファイルのダウンロード

goro@kyoka:~$ python
Python 2.7.6 (default, Dec 12 2013, 17:19:47)
[GCC 4.2.1 Compatible FreeBSD Clang 3.3 (tags/RELEASE_33/final 183502)] on freebsd10
Type "help", "copyright", "credits" or "license" for more information.
>>> import boto
>>> conn = boto.connect_s3()
>>> b = conn.get_bucket('sample_namespace')
>>> b.list()
<boto.s3.bucketlistresultset.BucketListResultSet object at 0x8064d47d0>
>>> k = b.get_key('Mii.jpg')
>>> k.get_contents_to_filename('Mii.jpg')
>>>
goro@kyoka:~$ ls -l Mii.jpg
-rw-r--r--  1 goro  staff  59944  2月  4 20:08 Mii.jpg
goro@kyoka:~$ openssl sha1 Mii.jpg
SHA1(Mii.jpg)= fae6000009ba8a1f4b195dbb8c3a6b877938afca
goro@kyoka:~$

ファイルの属性はコピーされないのでそれは頑張ろうねって S3 と同じですね(S3 互換なんだから当然だ)。一番手間取ったのは、実は、電話認証のところのよーな気がした(笑)

とツイートしたけど、今の時点ではネームスペースとユーザ名(=アクセスキー)が同じ、というのも気になるトコロ。値段にもよるだろうけど、積極的にこれを使う理由はないかな…。

コメントを残す