基于python实现腾讯对象存储cos

为什么要用COS对象存储

为了减少项目运行的服务器压力,文件存储会单独找一*立的服务,即文件存储或对象存储

对象存储和文件存储的差别

  • 文件存储类似文件夹目录
  • 对象存储没有文件夹概念,内部进行了优化

使用方法

  1. 开通对象存储(以腾讯为例),进入后台

https://console.cloud.tencent.com/cos5

  1. 创建桶,选择公有读私有写

  2. 通过python实现上传文件到储存桶

  • 找到python sdk 安装
pip install -U cos-python-sdk-v5
  • 初始化
# -*- coding=utf-8
# appid 已在配置中移除,请在参数 Bucket 中带上 appid。Bucket 由 BucketName-APPID 组成
# 1. 设置用户配置, 包括 secretId,secretKey 以及 Region
from qcloud_cos import CosConfig
from qcloud_cos import CosS3Client
import sys
<!--import logging-->

<!--logging.basicConfig(level=logging.INFO, stream=sys.stdout)-->

secret_id = 'COS_SECRETID'      # 替换为用户的 secretId
secret_key = 'COS_SECRETKEY'      # 替换为用户的 secretKey

region = 'ap-shanghai'     # 替换为用户的 Region
token = None                # 使用临时密钥需要传入 Token,默认为空,可不填
scheme = 'https'            # 指定使用 http/https 协议来访问 COS,默认为 https,可不填
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)

# 2. 获取客户端对象
client = CosS3Client(config)
# 参照下文的描述。或者参照 Demo 程序,详见 https://github.com/tencentyun/cos-python-sdk-v5/blob/master/qcloud_cos/demo.py

创建桶(可以代替上面网站手动添加)

response = client.create_bucket(
   Bucket='examplebucket-1250000000'
)

查询桶

response = client.list_buckets(
)

上传对象

#### 高级上传接口(推荐)
# 根据文件大小自动选择简单上传或分块上传,分块上传具备断点续传功能。
response = client.upload_file(
   Bucket='young-1300539838',  # 桶的名称
   LocalFilePath='local.txt', # 本地文件路径
   Key='picture.jpg', # 上传到桶之后的文件名
   
   # 以下可选参数
   PartSize=1,
   MAXThread=10,
   EnableMD5=False
)
print(response['ETag'])

上传文件DEMO

# -*- coding=utf-8
# appid 已在配置中移除,请在参数 Bucket 中带上 appid。Bucket 由 BucketName-APPID 组成
# 1. 设置用户配置, 包括 secretId,secretKey 以及 Region
from qcloud_cos import CosConfig
from qcloud_cos import CosS3Client
import sys
# import logging

# logging.basicConfig(level=logging.INFO, stream=sys.stdout)

secret_id = '用自己的secret_id'      # 替换为用户的 secretId
secret_key = '用自己的secret_key'      # 替换为用户的 secretKey

region = '用自己桶的region'     # 替换为用户的 Region

# token = None                # 使用临时密钥需要传入 Token,默认为空,可不填
# scheme = 'https'            # 指定使用 http/https 协议来访问 COS,默认为 https,可不填
config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key)

# 2. 获取客户端对象
client = CosS3Client(config)
# 参照下文的描述。或者参照 Demo 程序,详见 https://github.com/tencentyun/cos-python-sdk-v5/blob/master/qcloud_cos/demo.py


response = client.upload_file(
    Bucket='young-1300539838',  # 桶的名称
    LocalFilePath='add_new_price.py',  # 本地文件路径
    Key='add_new_price.py',  # 上传到桶之后的文件名

    # 以下可选参数
    PartSize=1,
    MAXThread=10,
    EnableMD5=False
)
print(response['ETag'])
上一篇:再见SpringMVC!一个月学java找工作


下一篇:每日leetcode-数组-299. 猜数字游戏