前言
腾讯云对象存储(Cloud Object Storage,COS)是腾讯云提供的一种存储海量文件的分布式存储服务,用户可通过网络随时存储和查看数据。这个服务目前是基本免费,用来做一些小型网站的存储或者博客图片外链是非常不错的选择。
腾讯云对象存储 COS 除了提供多种 API 接口,还提供了丰富多样的 SDK 供开发者使用。
最近在玩 python,所以来试试 Python SDK,尝试使用 SDK 来进行文件的上传和下载。
1 SDK 安装
从 XML Python SDK 下载源码,通过 setup 手动安装,执行以下命令。python setup.py install
2 测试代码准备 - 文件上传和下载
参考 DEMO 代码,编写自己的 test.py。
2.1 初始化
按需替换为自己的参数# 设置用户属性, 包括secret_id, secret_key, region
# appid已在配置中移除,请在参数Bucket中带上appid。Bucket由bucketname-appid组成
secret_id = 'AKIDgQ5ylsAAGQtKleHya3OahdQXsG7pGkUc' # 替换为用户的secret_id
secret_key = 'MlF20qY6UxIVFqYBg64uRZaTBkImCaJ1' # 替换为用户的secret_key
region = 'ap-guangzhou' # 替换为用户的region
token = None # 使用临时密钥需要传入Token,默认为空,可不填
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token) # 获取配置对象
client = CosS3Client(config)
2.2 文件上传
在 py 文件目录下,创建一个 test.txt,用于上传测试。# 文件流 简单上传
file_name = 'test.txt'
with open('test.txt', 'rb') as fp:
response = client.put_object(
Bucket='ttn-1254681858', # Bucket由bucketname-appid组成
Body=fp,
Key=file_name,
StorageClass='STANDARD',
ContentType='text/html; charset=utf-8'
)
print(response['ETag'])
2.3 文件下载# 文件下载 获取文件到本地
response = client.get_object(
Bucket='ttn-1254681858',
Key=file_name,
)
response['Body'].get_stream_to_file('output.txt')
3 测试验证
简单运行 python tt.py 进行测试。
这时候可以看到目录下多出了一个 output.txt,打开确认内容和原先的 test.txt 一致。
同时如果我们的存储桶设置了“公有读”权限的话,那么就可以直接通过 URL 来访问。
END