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

news2024/11/28 1:41:21

文章目录

  • 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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python 实践

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

家庭安全计划 挑战赛| 溺水预防

溺水预防 从了解到行动 家庭安全计划 | 少年急救官 地震避险逃生该怎么做? 起火了该如何应对? 哪些行为容易导致溺水? 家庭风险隐患有哪些? 家庭逃生演练四步骤你会吗? 国际救助儿童会(英国&#xff…

C/C++ 动态内存管理(内存是如何分布的?malloc/new,free/delete的用法是什么?区别是什么?)

目录 一、前言 二、C/C中的内存分布 💦了解内存区域的划分 💦内存存储区域的对比和注意点 💦内存管理的常考面试题 三、C语言的动态管理方式 四、C的动态管理方式 💦new / delete 操作内置类型(int,char.....&…

5 Paimon数据湖之表数据查询详解

更多Paimon数据湖内容请关注:https://edu.51cto.com/course/35051.html 虽然前面我们已经讲过如何查询Paimon表中的数据了,但是有一些细节的东西还需要详细分析一下。 首先是针对Paimon中系统表的查询,例如snapshots\schemas\options等等这些…

【每日一题】—— C. Anonymous Informant(Codeforces Round 908 (Div. 2))(思维题)

🌏博客主页:PH_modest的博客主页 🚩当前专栏:每日一题 💌其他专栏: 🔴 每日反刍 🟡 C跬步积累 🟢 C语言跬步积累 🌈座右铭:广积粮,缓称…

(动手学习深度学习)第7章 残差网络---ResNet

目录 ResNet总结 ResNet代码实现ResNet的梯度计算 ResNet 总结 残差块使得很深的网络更加容易训练 甚至可以训练一千层的网络 残差网络对随后的深层神经网络设计产生了深远影响,无论是卷积类网络还是全连接类网络。 ResNet代码实现 导入相关库 import torch fro…

K8S容器内安装cur/telnet命令(Alpine Linux离线环境安装curl/telnet或其他工具)

背景 需求: 微服务的基础是镜像,通常在最小化的Linux镜像中安装jdk,然后运行编译好的java程序。将镜像运行到K8S上就得到了微服务Pod,Pod通常使用安装K8S时配置的私有网段,与宿主机不同。很多时候需要排查从Pod网段内…

概念解析 |移动群智感知:智能设备时代的数据革命

注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:移动群智感知(Mobile Crowd Sensing, MCS)。 移动群智感知:智能设备时代的数据革命 移动群智感知示意图 背景介绍 随着智能手机和物联网设备的普及,我们进入了一个全新的…

《未来之路:技术探索与梦想的追逐》

创作纪念日 日期:2023年07月05日文章标题:《从零开始-与大语言模型对话学技术-gradio篇(1)》成为创作者第128天 在这个平凡的一天,我撰写了自己的第一篇技术博客,题为《从零开始-与大语言模型对话学技术-…

【Docker】iptables命令的使用

iptables是一个非常强大的Linux防火墙工具,你可以使用它来控制网络流量的访问和转发。 前面已经学习了iptables的基本原理,四表五链的基本概念,也已经安装好了iptables,下面我们主要学习iptables命令的基本使用。 可以使用iptable…

Redis持久化之RDB和AOF操作

文章目录 前言一、什么是RDB?1.与持久化相关的一些配置2.触发机制3.如何恢复rdb文件4.优点5.缺点 二、什么是AOF?1.重写规则说明2.优点3.缺点 总结 前言 无论是面试还是工作,持久化都是重点! Redis是内存数据库,如果不将内存中的…

阿里云AIGC小说生成【必得京东卡】

任务步骤 此文真实可靠不做虚假宣传,绝对真实,可截图为证。 领取任务 链接(复制到wx打开):#小程序://ITKOL/1jw4TX4ZEhykWJd 教程实践 打开函数计算控制台 应用->创建应用->人工智能->通义千问 AI 助手-…

【字符串】【双指针翻转字符串+快慢指针】Leetcode 151 反转字符串中单词【好】

【字符串】【双指针翻转字符串快慢指针】Leetcode 151 反转字符串中单词 解法1 双指针翻转字符串快慢指针更新数组大小 ---------------🎈🎈题目链接🎈🎈------------------- ---------------🎈🎈解答链接…

矩阵起源荣获第八届“创客中国”深圳市中小企业创新创业大赛三等奖

近日,2023年第八届“创客中国”深圳市中小企业创新创业大赛圆满落下帷幕,矩阵起源(深圳)信息科技有限公司凭借项目”MatrixOne 新一代超融合异构云原生数据库”荣获企业组三等奖。 本届大赛由深圳市工业和信息化局、深圳市中小企业…

Blazor之Router入门

前言:博主文章仅用于学习、研究和交流目的,不足和错误之处在所难免,希望大家能够批评指出,博主核实后马上更改。 概述: Router 组件允许路由到 Razor 组件。 Router 组件在 App 组件 (App.razor) 中使用。编译带有 p…

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

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

【MySQL】手把手教你centos7下载MySQL

centos7下载MySQL 前言正式开始卸载不需要的环境(如果你之前没有安装过数据库相关的东西可以跳过)下载mysql登录mysql登陆⽅法⼀【不⾏就下⼀个】登陆⽅法⼆【不⾏就下⼀个】登录方式三 前言 安装和卸载MySQL都用系统的root权限,更方便一点&…

pyqt5学习-01 UI界面创建以及生成python代码

前提 环境搭建 打开designer 选择创建主窗体,拖入一个按钮 保存主窗体UI文件为firstMainWin.ui 将UI文件转化为python文件 # 可以把E:\Python\envs\pyqt5stu\Scripts\pyuic5.exe添加到环境变量中 E:\Python\envs\pyqt5stu\Scripts\pyuic5.exe -o firstMainWin.…

新零售时代,传统便利店如何转型?

在零售批发业,如何降低各环节成本、提高业务运转效率、更科学地了解客户服务客户,是每家企业在激烈竞争中需要思考的课题。 对零售批发企业来说,这些问题或许由来已久: (1)如何对各岗位的员工进行科学的考…

【nginx】使用arthas协助定位 nginx 499

看到这个499 到服务端 通过arthas查看 并没有耗时很长的 心跳接口 看都是很快的 通过 monitor 命令 通过watch 定位看到这个现象: watch -x 3 在nginx配置文件中添加 在nginx 中查看 没有499 了 再看nginx 中有存在 401 这个是业务问题 剩下的是检测器同事定位…