Python-SDK
S3-Python-SDK?
Boto-Python版本是AWS的Python接口,調用相關API,即可訪問Amazon S3或其他兼容S3的存儲(chu)服(fu)務(wu)。
前置條件?
- 如果您還不了解COS,請參考對象存儲服務;
- 使用SDK需要擁有有效的密鑰對(包括AccessKeyId和AccessKeySecret)進行簽名認證,請在控制臺界面獲取該密鑰對;
適用系統?
Mac OS X,Windows,Linux等
安裝?
本(ben)文檔(dang)在Cento7下安裝Boto(Python版(ban)本(ben)),該系統(tong)自帶python運行環境(jing),Python版(ban)本(ben)是2.7.5。
- git clone?
- cd boto
- sudo python setup.py install
使用S3-Python-SDK?
以下代(dai)碼使用SDK實現了基本的桶和(he)對象操作:
- 創建到服務器的鏈接
- 創建一個桶;
- 上傳對象到桶中
- 列出所有桶中的所有對象
- 獲取桶的元數據信息
- 獲取桶中的對象信息
- 刪除桶中對象
#!/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"
# 創建到服務器的(de)鏈接
conn = S3Connection(AWS_ACCESS_KEY,
AWS_SECRET_ACCESS_KEY,
host = "s3-cn-suzhou.cn-henji.com",
port = 80,
calling_format = OrdinaryCallingFormat(),
is_secure = False
)
# 創(chuang)建(jian)一個桶
bucket = conn.create_bucket("my-test-bucket")
# 上傳(chuan)對象到(dao)桶中
s3_object = bucket.new_key("my-test-file")
s3_object.set_contents_from_string("This is a text.")
# 列出所有桶中的(de)所有對象
for bucket in conn.get_all_buckets():
print bucket
for obj in bucket.get_all_keys():
print obj
print
# 獲取桶的元數據信息(xi)
bucket = conn.get_bucket("my-test-bucket")
print bucket
# 獲取(qu)桶(tong)中的對象信息
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")
# 刪(shan)除桶(tong)中對象
# s3_object.delete()
運行腳本?
- 以上代碼另存為python腳本,如cos-python-demo.py。在命令行下,執行腳本python cos-python-demo.py;
- 該腳本涉及建立連接、創建桶、上傳/下載/刪除文件等基本操作。