環境
python: 2.7.10
コード
Bucketの一覧を取得する
import boto
import boto.s3.connection
conn = boto.s3.connect_to_region(AWS_REGION,
  aws_access_key_id=AWS_ACCESS_KEY_ID,
  aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
  is_secure=True,               # uncommmnt if you are not using ssl
  calling_format = boto.s3.connection.OrdinaryCallingFormat(),
           )
buckets = conn.get_all_buckets()
オブジェクトの中身を取得
 bucket = conn.get_bucket(<Bucketの名前>)
 key = bucket.get_key(<オブジェクト名>)
 print key.get_contents_as_string() # オブジェクトの中身を取得
オブジェクトをアップロード
こちらをimportとする。
from boto.s3.key import Key
 bucket = conn.get_bucket('dev') #アップロード先のBucket名
 fname = 'test_basic_usage.txt' # ここのファイル名は特に使用されない
 with open(fname, 'w') as f:
    f.write('basic_usage') # オブジェクトの中身
 k = Key(bucket)
 k.key = 'AA' # オブジェクト名 もしディレクトリにする場合は'aaa/test'等にする
 
 k.set_contents_from_filename(fname) # S3に作成したファイルを保存
やってることとしては
test_basic_usage.txt
という名前のファイルをカレントディレクトリに作成し、それを
k.set_contents_from_filename
この処理により、アップロードしている。
そういうわけなので,カレントディレクトリに 'test_basic_usage.txt というファイルができてしまうことに注意
なので、ファイルを消す場合は
 delete_file = os.path.dirname(os.path.abspath(__file__)) + '/' + fname
 os.remove(delete_file)
という処理を上記処理の最後に追加するのが良い。
S3のpathを期限付きで発行する
 bucket = conn.get_bucket('dev') #アップロード先のBucket名
 key = bucket.get_key(<Key名>) # "test/test.csv"等
 url = key.generate_url(5000)
 
これも、カレントディレクトリに
s3-ap-northeast-1.amazonaws.com/dev//ファイル名
みたいなフォルダとファイルが作成されるので以下のコードで削除することができる。
  shutil.rmtree("s3-ap-northeast-1.amazonaws.com") 
# "s3-ap-northeast-1.amazonaws.com"の部分は適当に弄ってください
参考
http://hacknote.jp/archives/17537/
http://srad.jp/~ninestars/journal/557562/
