概要
boto は AWS を操作するための Python ライブラリです
バージョンがだいぶ上がってから使っていなかったので久しぶりに試してみました
環境
- macOS 10.13.5
- Python 3.6.5
- boto 2.48.0
インストール
- pip3 install boto
バケット作成
from boto.s3.connection import S3Connection
conn = S3Connection(
'xxxxxxxxxxxxxx',
'xxxxxxxxxxxxxx',
host = 'jp-east-2.os.cloud.nifty.com'
)
bucket = conn.create_bucket('mybucket')
print(bucket)
ファイルアップロード
- touch test.txt
from boto.s3.connection import S3Connection
from boto.s3.key import Key
conn = S3Connection(
'xxxxxxxxxxxxxx',
'xxxxxxxxxxxxxx',
host = 'jp-east-2.os.cloud.nifty.com'
)
b = conn.get_bucket('mybucket')
k = Key(b)
k.key = 'test'
ret = k.set_contents_from_filename('./test.txt')
print(ret)
k.key
はオブジェクトストレージに保存される名前です
ret はアップロードできたファイルの内容のバイト数になります
KVS 的に使う
from boto.s3.connection import S3Connection
from boto.s3.key import Key
conn = S3Connection(
'xxxxxxxxxxxxxx',
'xxxxxxxxxxxxxx',
host = 'jp-east-2.os.cloud.nifty.com'
)
b = conn.get_bucket('mybucket')
k = Key(b)
k.key = 'key'
k.set_contents_from_string('value')
ret = k.get_contents_as_string()
print(ret)
「value」という文字列が表示されます
型は byte なので必要に応じて str などに変換してください
オブジェクト一覧を取得
from boto.s3.connection import S3Connection
from boto.s3.key import Key
conn = S3Connection(
'xxxxxxxxxxxxxx',
'xxxxxxxxxxxxxx',
host = 'jp-east-2.os.cloud.nifty.com'
)
b = conn.get_bucket('mybucket')
for obj in b.list():
print(obj.key)
obj
は boto.s3.key.Key
というクラスなので必要に応じてアクセスしてください
オブジェクト削除
from boto.s3.connection import S3Connection
from boto.s3.key import Key
conn = S3Connection(
'xxxxxxxxxxxxxx',
'xxxxxxxxxxxxxx',
host = 'jp-east-2.os.cloud.nifty.com'
)
b = conn.get_bucket('mybucket')
k = Key(conn)
for obj in b.list():
obj.delete
k.key = obj.key
b.delete_key(k)
ちょっとややこしいのですが Key のオブジェクトを作成して、その Key を元にバケットに対して delete_key
する感じです
バケット削除
from boto.s3.connection import S3Connection
from boto.s3.key import Key
conn = S3Connection(
'xxxxxxxxxxxxxx',
'xxxxxxxxxxxxxx',
host = 'jp-east-2.os.cloud.nifty.com'
)
b = conn.get_bucket('mybucket')
b.delete()
バケットの一覧
from boto.s3.connection import S3Connection
from boto.s3.key import Key
conn = S3Connection(
'xxxxxxxxxxxxxx',
'xxxxxxxxxxxxxx',
host = 'jp-east-2.os.cloud.nifty.com'
)
bs = conn.get_all_buckets()
print(bs)
最後に
boto2.48 を使ってみました
現在は v3 の開発も進んでいるようです
基本は公式ドキュメントが良いと思いますが検索が微妙なので見つからない場合は素直にググって良いと思います
boto はかなり情報が豊富なのでハマる点はほとんどないと思います
0 件のコメント:
コメントを投稿