Python使用腾讯云SDK实现对象存储(上传文件、创建桶)

文章目录

  • 1. 开通服务
  • 2. 创建存储桶
  • 3. 手动上传文件并查看
  • 4. python上传文件
    • 4.1 找到sdk文档
    • 4.2 初始化代码
    • 4.3 region获取
    • 4.4 secret_id和secret_key获取
    • 4.5 上传对象代码
    • 4.6 python实现上传文件
  • 5 python创建桶

首先来到腾讯云官网

https://cloud.tencent.com/

1. 开通服务

image-20231110131412716

来到如下页面

image-20231110131602569

image-20231110131632047

image-20231110131654757

2. 创建存储桶

image-20231110131846066

image-20231110132024629

根据自己的需要进行选择

image-20231110132058578

image-20231110132125276

创建好后就会来到这个页面

image-20231110132307978

3. 手动上传文件并查看

点击“上传图片”

image-20231110132628265

上传完成后继续点击

image-20231110132939895

image-20231110133010615

image-20231110133104457

image-20231110133134360

4. python上传文件

4.1 找到sdk文档

image-20231110135419630

image-20231110135451551

image-20231110135523684

image-20231110135538486

image-20231110135632416

然后我们就可以看到对象存储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就是下面这个东西(就是你在创建桶时选择的区域,我上面选择的是中国-重庆)

image-20231110140021374

4.4 secret_id和secret_key获取

image-20231110140235861

这里会跳出一个框框,选择继续使用就好

image-20231110140306307

点击新建密钥

注意:密钥不能公开,只能自己知道。

image-20231110140441753

4.5 上传对象代码

这只是上传文件的其中一部分代码,不要混淆

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

image-20231110141106783

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'])

执行代码后去腾讯查看

image-20231110141954435

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后面那一串数字没有改,应该用自己的。在创建存储桶那里可以看到

image-20231110144751014

创建桶的最终代码:

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)

image-20231110144930339

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/127736.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java枚举类的使用

说明: 根据设计图抽象的枚举类,一张模板背景图(会改变),二维码(传入参数生成),一个关闭的icon(固定不变) 设计图如下 枚举类 去除重复模板后共五个,根据需求编写枚举类如下,url则对应不同的模板,编写成后台人员的可配置项, public enum ImageTemplateEnum {PURCHASE("p…

Python 实践

文章目录 一、HttpRequests 一、Http Requests python——Request模块

Ionic组件 ion-list ion-list-header

1 ion-list 列表由多行项目组成,这些项目可以包含 text, buttons, toggles, icons, thumbnails等。列表通常包含具有类似数据内容的项目,如 images and text。 列表支持多种交互,包括滑动项目以显示选项、拖动以重新排列列表中的项目以及删除…

GCC + Vscode 搭建 nRF52xxx 开发环境

在 Windows 下使用 GCC Vscode 搭建 nRF52xxx 开发环境 ...... by 矜辰所致前言 最近有遇到项目需求,需要使用到 Nordic 的 nRF52xxx 芯片,还记得当初刚开始写博文的时候的写的 nRF52832 学习笔记,现在看当时笔记毫无逻辑可言&#xff0c…

〔003〕虚幻 UE5 基础教程和蓝图入门

✨ 目录 ▷ 新建项目▷ 快捷操作▷ 镜头移动速度▷ 新建蓝图关卡▷ 打印字符串▷ 蓝图的快捷键▷ 场景中放置物体▷ 通过蓝图改变物体位置▷ 展现物体运动轨迹▷ 队列运行▷ 新建项目 打开虚幻启动程序,选择 引擎版本 后点击 启动选择 游戏 类型,默认设置中选择 蓝图,项目名…

聚铭国产化日志合规版 → 中小企事业单位等保建设的最优解

聚铭网络最新发布聚铭综合日志分析系统国产化合规版本 ,相较于同类型同档次非国产化设备性能无衰减、功能无裁减、成本不提高,适用于信创替换以及等保日志建设等应用场景。 面对日趋复杂的外部环境,近年来,国家越来越重视关键技术…

鲁大师电动车智能化测评报告第二十三期:实测续航95km,九号Q90兼顾个性与实用

鲁大师第二十三期智能化电动车测评排行榜数据来源于鲁大师智慧实验室,测评的车型均为市面上主流品牌的主流车型。截止目前,鲁大师智能化电动车测评的车型高达130余台,且还在不断增加和丰富中。 一、测评依据 鲁大师电动车智能化测评体系包含车辆的状态采集与管理硬件系统、车辆…

归并排序之确定递归层数

题目 给定一维int型数组a[0,1,…,n-1], 使用归并排序方法, 对其进行从小到大排序, 请输出递归过程中自顶自下第三层的排序结果, 其中最顶层为第一层, 即最终的排序结果层. 归并排序划分请按a[0,mid(0n-1)/2], a[(0n-1)/21, n-1]进行划分子问题. Input 输入第1行有一个int型正…

OLED透明屏的应用场景有哪些

OLED透明屏在其他领域的应用包括: 商业展示:在商业展示中,OLED透明屏可以作为展示窗口,展示产品信息、广告宣传和品牌形象。通过将透明屏幕安装在展柜、货架或商业窗口中,可以吸引顾客的注意力并提供引人注目的展示效…

霍尔电流传感器如何进行可靠性测试?主要应用在哪些领域?

霍尔电流传感器广泛应用于航空航天、电源监测、飞行器状态监测、变速驱动设备、焊接设备供电电源、新能源汽车蓄电池管理系统等领域,在电流检测领域中有着重要地位和实用价值,在电驱系统中被称为新能源汽车的动力“心脏”。因此,霍尔电流传感…

QML9、输入元素

1、输入元素(Input Element) 我们已经使用过MouseArea(鼠标区域)作为鼠标输入元素。这里我们将更多的介绍关于键盘输入的一些东西。我们开始介绍文本编辑的元素:TextInput(文本输入)和TextEdit(文本编辑)。 2、文本输入(TextInput) 文本输入允许用户输入一行文本…

WorkPlus定制化的沟通协作平台,助您实现企业级完全掌控

在企业沟通协作的领域,一种高度定制化的平台是至关重要的。WorkPlus作为一款领先的沟通协作平台,具备高度定制化的特点,能够满足企业各项需求。通过平台级定制扩展和上下游完全掌控,WorkPlus成为了企业实现定制化和完全掌控的理想…

excel如何加密(excel加密的三种方法)

Excel是一款广泛使用的办公软件,有时候我们需要对一些重要的Excel文件进行加密,以保证文件的安全性。下面将介绍3种常用的Excel加密方法。 方法一:通过路径文件-另存为-工具-常规选项-设置打开或修改权限密码(密码只可以使数字、字…

虚幻引擎:如何进行关卡切换?

一丶非无缝切换 在切换的时候会先断开连接,等创建好后才会链接,造成体验差 蓝图中用到的节点是 Execute Console Command 二丶无缝切换 链接的时候不会断开连接,中间不会出现卡顿,携带数据转换地图 1.需要在gamemode里面开启无缝漫游,开启之后使用上面的切换方式就可以做到无缝…

矩阵起源加入 OpenCloudOS 操作系统开源社区,完成技术兼容互认证

近日,超融合异构云原生数据库 MatrixOne企业版软件 V1.0 完成了与 OpenCloudOS 的相互兼容认证,测试期间,整体运行稳定,在功能、性能及兼容性方面表现良好。 一、产品简介 矩阵起源 MatrixOrigin 致力于建设开放的技术开源社区和…

企业安全—三保一评

0x00 前言 本篇主要是讲解三保一评的基础知识,以及对为什么要进行这些内容的原因进行总结。 0x01 整体 1.概述 三保分别是,分保,等保,关保。 分保就是指涉密信息系统的建设使用单位根据分级保护管理办法和有关标准&#xff0c…

LeetCode【78. 子集】

78. 子集 中等 2.2K 相关企业 给你一个整数数组 nums ,数组中的元素 互不相同 。返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。你可以按 任意顺序 返回解集。 示例 1: 输入:nums [1,2,3] 输出&…

Vue框架项目,给容器添加水印watermark

1、在/utils下新增一个名为waterMark.js的脚本 具体水印样式可以在代码里自行调节style 参数 - 水印内容, 加水印的容器, 是否显示时间 let watermark {};function getCurrentDateTime() {const now new Date();const year now.getFullYear();const month String(now.ge…

Flink之SQL查询操作

SQL查询 基本SELECT查询生成测试数据WITHWHEREDISTINCTORDER BYLIMIT 窗口函数概述创建数据表滚动窗口 TUMBLE滑动窗口 HOP累积窗口 CUMULATE窗口偏移 聚合窗口聚合分组聚合OVER聚合 TOP-N普通Top-N窗口Top-N 联结Join查询内部等连接外部等连接间隔联结 集合操作UNION 和 UNION…

界面控件DevExtreme图表和仪表(v23.1) - 新功能(Angular,React,Vue,jQuery)

本文将为大家总结下DevExtreme在v23.1版本中发布的一些与图表和仪表盘相关的功能。 DevExtreme拥有高性能的HTML5 / JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NET Core,jQuery&#…