Python-SDK
S3-Python-SDK
Boto-Python版本是AWS的Python接口,调用相关API,即可访问Amazon S3或其他兼容S3的存储服务。
前置条件
- 如果您还不了解COS,请参考对象存储服务;
- 使用SDK需要拥有有效的密钥对(包括AccessKeyId和AccessKeySecret)进行签名认证,请在控制台界面获取该密钥对;
适用系统
Mac OS X,Windows,Linux等
安装
本文档在Cento7下安装Boto(Python版本),该系统自带python运行环境,Python版本是2.7.5。
- git clone https://github.com/boto/boto.git
- cd boto
- sudo python setup.py install
使用S3-Python-SDK
以下代码使用SDK实现了基本的桶和对象操作:
- 创建到服务器的链接
- 创建一个桶;
- 上传对象到桶中
- 列出所有桶中的所有对象
- 获取桶的元数据信息
- 获取桶中的对象信息
- 删除桶中对象
#!/usr/bin/python
# coding: utf8
from boto.s3.connection import S3Connection, OrdinaryCallingFormat
from boto.s3.bucket import Bucket
from boto.s3.key import Key
AWS_ACCESS_KEY = "YOUR_ACCESS_KEY_ID"
AWS_SECRET_ACCESS_KEY = "YOU_SECRET_ACCESS_KEY"
# 创建到服务器的链接
conn = S3Connection(AWS_ACCESS_KEY,
AWS_SECRET_ACCESS_KEY,
host = "s3-cn-suzhou.chinac.com",
port = 80,
calling_format = OrdinaryCallingFormat(),
is_secure = False
)
# 创建一个桶
bucket = conn.create_bucket("my-test-bucket")
# 上传对象到桶中
s3_object = bucket.new_key("my-test-file")
s3_object.set_contents_from_string("This is a text.")
# 列出所有桶中的所有对象
for bucket in conn.get_all_buckets():
print bucket
for obj in bucket.get_all_keys():
print obj
print
# 获取桶的元数据信息
bucket = conn.get_bucket("my-test-bucket")
print bucket
# 获取桶中的对象信息
s3_object = bucket.get_key("my-test-file")
print s3_object
print s3_object.read()
# write from file
# s3_object.set_contents_from_filename("filename")
# 删除桶中对象
# s3_object.delete()
运行脚本
- 以上代码另存为python脚本,如cos-python-demo.py。在命令行下,执行脚本python cos-python-demo.py;
- 该脚本涉及建立连接、创建桶、上传/下载/删除文件等基本操作。