文章目录
首先来到腾讯云官网
https://cloud.tencent.com/
1. 开通服务
来到如下页面
2. 创建存储桶
根据自己的需要进行选择
创建好后就会来到这个页面
3. 手动上传文件并查看
点击“上传图片”
上传完成后继续点击
4. python上传文件
4.1 找到sdk文档
然后我们就可以看到对象存储sdk的使用文档了,跟着它一步一步做就能实现。
下面直接介绍代码:
终端安装sdk
pip install -u cos-python-sdk-v5
4.2 初始化代码
from qcloud_cos import cosconfig
from qcloud_cos import coss3client
import sys
import os
# 1. 设置用户属性, 包括 secret_id, secret_key, region等。appid 已在 cosconfig 中移除,请在参数 bucket 中带上 appid。bucket 由 bucketname-appid 组成
secret_id = os.environ['cos_secret_id'] # 用户的 secretid,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140
secret_key = os.environ['cos_secret_key'] # 用户的 secretkey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140
region = 'ap-beijing' # 替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket
# cos 支持的所有 region 列表参见 https://cloud.tencent.com/document/product/436/6224
token = none # 如果使用永久密钥不需要填入 token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见 https://cloud.tencent.com/document/product/436/14048
scheme = 'https' # 指定使用 http/https 协议来访问 cos,默认为 https,可不填
config = cosconfig(region=region, secretid=secret_id, secretkey=secret_key, token=token, scheme=scheme)
client = coss3client(config)
上面需要做改动的就只有secret_id、secret_key和region
4.3 region获取
region就是下面这个东西(就是你在创建桶时选择的区域,我上面选择的是中国-重庆)
4.4 secret_id和secret_key获取
这里会跳出一个框框,选择继续使用就好
点击新建密钥
注意:密钥不能公开,只能自己知道。
4.5 上传对象代码
这只是上传文件的其中一部分代码,不要混淆
#### 高级上传接口(推荐)
# 根据文件大小自动选择简单上传或分块上传,分块上传具备断点续传功能。
response = client.upload_file(
bucket='examplebucket-1250000000', # 桶的名字
localfilepath='local.txt', # 本地文件路径
key='picture.jpg', # 上传到桶之后的文件名
# 后面这三个是参数的默认值,可以删了
partsize=1,
maxthread=10,
enablemd5=false
)
print(response['etag'])
4.6 python实现上传文件
纯净版代码:
from qcloud_cos import cosconfig
from qcloud_cos import coss3client
secret_id = '填入你的id'
secret_key = '填入你的key'
region = 'ap-chongqing'
token = none
scheme = 'https'
config = cosconfig(region=region, secretid=secret_id, secretkey=secret_key, token=token, scheme=scheme)
client = coss3client(config)
response = client.upload_file(
bucket='ly-1321630892', # 桶的名字
localfilepath='02.jpg', # 本地文件路径
key='02.jpg', # 上传到桶之后的文件名
)
print(response['etag'])
执行代码后去腾讯查看
5 python创建桶
这是sdk文档的内容,其实相对于上传文件的代码,就只改变了最后一点response等于的那里。
# -*- coding=utf-8
from qcloud_cos import cosconfig
from qcloud_cos import coss3client
import sys
import os
import logging
# 正常情况日志级别使用 info,需要定位时可以修改为 debug,此时 sdk 会打印和服务端的通信信息
logging.basicconfig(level=logging.info, stream=sys.stdout)
# 1. 设置用户属性, 包括 secret_id, secret_key, region等。appid 已在 cosconfig 中移除,请在参数 bucket 中带上 appid。bucket 由 bucketname-appid 组成
secret_id = os.environ['cos_secret_id'] # 用户的 secretid,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140
secret_key = os.environ['cos_secret_key'] # 用户的 secretkey,建议使用子账号密钥,授权遵循最小权限指引,降低使用风险。子账号密钥获取可参见 https://cloud.tencent.com/document/product/598/37140
region = 'ap-beijing' # 替换为用户的 region,已创建桶归属的 region 可以在控制台查看,https://console.cloud.tencent.com/cos5/bucket
# cos 支持的所有 region 列表参见 https://cloud.tencent.com/document/product/436/6224
token = none # 如果使用永久密钥不需要填入 token,如果使用临时密钥需要填入,临时密钥生成和使用指引参见 https://cloud.tencent.com/document/product/436/14048
scheme = 'https' # 指定使用 http/https 协议来访问 cos,默认为 https,可不填
config = cosconfig(region=region, secretid=secret_id, secretkey=secret_key, token=token, scheme=scheme)
client = coss3client(config)
response = client.create_bucket(
bucket='examplebucket-1250000000'
)
纯净版:
from qcloud_cos import cosconfig
from qcloud_cos import coss3client
secret_id = '--'
secret_key = '--'
region = 'ap-chengdu'
# 这两个也是参数的默认值,可以去掉
token = none
scheme = 'https'
# 去掉后下面这里传参的时候也要去掉
config = cosconfig(region=region, secretid=secret_id, secretkey=secret_key, token=token, scheme=scheme)
client = coss3client(config)
response = client.create_bucket(
bucket='test-1250000000', # 存储桶的名称
acl='public-read' # 访问权限 有 private/public-read/public-read-write
)
执行多次一直出现下面这个报错。
报错:
qcloud_cos.cos_exception.cosserviceerror: {'code': 'accessdenied', 'message': 'access denied.', 'resource': '/', 'requestid': 'nju0zgqwoddfzmnintu4njrfmwfknv83zthkzme1', 'traceid': 'ogvmyzzimmqzyja2ownhodk0ntrkmtbiowvmmdaxodc0owrkzjk0zdm1nmi1m2e2mtrly2mzzdhmnmi5mwi1ota2nzixmzrkndexndjiywzmm2exntvhmjixmzhjndi2m2yzzjrmytfmyjgxmgrlnzzmmdhlztgzmjhmoda1mjc='}
查了后发现是bucket后面那一串数字没有改,应该用自己的。在创建存储桶那里可以看到
创建桶的最终代码:
from qcloud_cos import cosconfig
from qcloud_cos import coss3client
secret_id = '--'
secret_key = '--'
region = 'ap-chengdu'
token = none
scheme = 'https'
config = cosconfig(region=region, secretid=secret_id, secretkey=secret_key, token=token, scheme=scheme)
client = coss3client(config)
response = client.create_bucket(
bucket='test-1321630892',
acl='public-read'
)
print(response)
发表评论