跳到主要内容

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。

使用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;
  • 该脚本涉及建立连接、创建桶、上传/下载/删除文件等基本操作。