python操作s3 -- boto2.x

以下是python操作s3常用方法:

boto s3手册:http://boto.readthedocs.org/en/latest/ref/s3.html

boto s3快速入门:http://boto.readthedocs.org/en/latest/s3_tut.html

import boto
from boto.s3.key import Key

#高级连接,当然你需要配置好YOUR_ACCESS_KEY,YOUR_SECRET_KEY,我这里是配好了
conn = boto.connect_s3()

#创建一个存储桶
conn.create_bucket('yourbucket')
conn.create_bucket('yourbucket', location=Location.USWest)

#访问一个存储桶
bucket = conn.get_bucket('yourbucket')
exists = conn.lookup('yourbucket')

#向s3上存储数据, 数据来源可以是file、stream、or string,下面为从文件获取数据保存到s3上的test.txt文件中
key = Key(bucket, 'hadoop/data_log/test.txt')
key.set_contents_from_file('/tmp/hello.txt')
#读取s3上文件中的内容,返回string,当然还有其他形式,看源码
key.get_contents_as_string()

#删除一个存储桶,在删除存储桶本身时必须删除该存储桶内的所有key
for key in bucket:
    key.delete()
bucket.delete()

#迭代遍历buckets and keys
for bucket in conn:
    for key in bucket:
        print key.name

#一个判断文件夹中是否有文件的方法
rs = bucket.get_all_keys(prefix=rel_path)
if len(rs)>0:
    print '有文件'
else:
    print '为空'
#例如:要判断 path=s3://data/hadoop/data_log/20160301/01/文件夹下是否有文件时,rel_path的取值:rel_path = path[10:]

 

  

 

posted @ 2016-03-29 11:04  记忆书签  阅读(6950)  评论(0编辑  收藏  举报