当前位置: 首页 > news >正文

大数据系列之:上传图片到cos、cos

大数据系列之:上传图片到cos、cos

  • 安装python cos sdk
  • 上传图片到cos
  • 高级上传接口
  • 分页列举桶内对象
  • cos桶之间复制
  • cos桶之间复制图片数据

安装python cos sdk

 pip install -U cos-python-sdk-v5

上传图片到cos

# -*- 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 = "*********************"
secret_key = "********************"
region = 'ap-shanghai'      # 替换为用户的 region,已创建桶归属的 region 可以在控制台查看
token = None               # 如果使用永久密钥不需要填入 token,如果使用临时密钥需要填入
scheme = 'https'           # 指定使用 http/https 协议来访问 COS,默认为 https,可不填config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)
client = CosS3Client(config)folder_path = ""for root, dirs, files in os.walk(folder_path):for file in files:if file.lower().endswith(('.png', '.jpg', '.jpeg', '.gif')):file_path = os.path.join(root, file)print(file_path)key = os.path.relpath(file_path, folder_path)key_path = ""+keyprint(key_path)client.upload_file(Bucket='optics-data-1253431691',LocalFilePath=file_path,Key=key_path,PartSize=1,MAXThread=10,EnableMD5=False)print(f'Uploaded {file_path} to COS')

高级上传接口

### 高级上传接口(推荐)
根据文件大小自动选择简单上传或分块上传,分块上传具备断点续传功能。
response = client.upload_file(Bucket='optics-data-1253431691',LocalFilePath='',Key='/picture.jpg',PartSize=1,MAXThread=10,EnableMD5=False
)
print(response['ETag'])

分页列举桶内对象

marker = ""  # 分页列举桶内对象,每个分页10个对象
while True:response = client.list_objects(Bucket='optics-data-1253431691', Prefix='', Marker=marker, MaxKeys=10)if 'Contents' in response:for content in response['Contents']:allPictures.append(content['Key'])if response['IsTruncated'] == 'false':breakmarker = response["NextMarker"]

cos桶之间复制

#从业务cos桶中把图片同步到大数据cos桶中for source_path in allPictures:#打印业务cos桶图片路径print(source_path)#图片名称picName = source_path.split("/")[-1]#按照每张图片把业务cos桶中的图片同步到大数据cos桶中response = client.copy(Bucket='optics-ai-data-1253431691',Key=f"*/{picName}",CopySource={'Bucket': 'optics-data-1253431691','Key': source_path,'Region': 'ap-shanghai'}
)

cos桶之间复制图片数据

# -*- coding=utf-8
from qcloud_cos import CosConfig
from qcloud_cos import CosS3Client
import sys
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 = "************"
secret_key = "***********"
region = 'ap-shanghai'      # 替换为用户的 region,已创建桶归属的 region 可以在控制台查看
token = None               # 如果使用永久密钥不需要填入 token,如果使用临时密钥需要填入
scheme = 'https'           # 指定使用 http/https 协议来访问 COS,默认为 https,可不填config = CosConfig(Region=region, SecretId=secret_id, SecretKey=secret_key, Token=token, Scheme=scheme)
client = CosS3Client(config)# 获取业务cos桶中图片的路径信息allPictures = [] #存储业务cos桶中图片路径
marker = ""  # 分页列举桶内对象,每个分页10个对象
while True:response = client.list_objects(Bucket='optics-data-1253431691', Prefix='*/', Marker=marker, MaxKeys=10)if 'Contents' in response:for content in response['Contents']:allPictures.append(content['Key'])if response['IsTruncated'] == 'false':breakmarker = response["NextMarker"]#从业务cos桶中把图片同步到大数据cos桶中for source_path in allPictures:#打印业务cos桶图片路径print(source_path)#图片名称picName = source_path.split("/")[-1]#按照每张图片把业务cos桶中的图片同步到大数据cos桶中response = client.copy(Bucket='optics-ai-data-1253431691',Key=f"*/{picName}",CopySource={'Bucket': 'optics-data-1253431691','Key': source_path,'Region': 'ap-shanghai'}
)print("成功把业务cos桶中图片同步到大数据cos桶中")
http://www.lryc.cn/news/523741.html

相关文章:

  • wsl 使用 docker
  • 归并延拓:LeetCode归并排序逆序对问题
  • 51.WPF应用加图标指南 C#例子 WPF例子
  • Springboot 注解缓存使用教程
  • Python爬虫:从入门到实践
  • 删除字符串中的所有相邻重复项(力扣1047)
  • MYSQL对数据的增删改查
  • 前端——Html+CSS
  • Linux(DISK:raid5、LVM逻辑卷)
  • N个utils(sql)
  • 以太网实战AD采集上传上位机——FPGA学习笔记27
  • Python数据分析案例70——基于神经网络的时间序列预测(滞后性的效果,预测中存在的问题)
  • vue+高德API搭建前端Echarts图表页面
  • 提示词工程:解锁AI潜能的关键技术
  • Python制作简易PDF查看工具PDFViewerV1.0
  • 嵌入式硬件篇---基本组合逻辑电路
  • CSRF攻击XSS攻击
  • ARM学习(42)CortexM3/M4 MPU配置
  • opencv3.4 ffmpeg3.4 arm-linux 交叉编译
  • spring的事物管理的认知
  • 麒麟LINUX V10SP3 2401安装ORACLE 12.2.1 runInstaller直接报UNZIP格式不对
  • 华为HuaweiCloudStack(一)介绍与架构
  • 微服务学习:基础理论
  • C++实现设计模式---迭代器模式 (Iterator)
  • 海康工业相机的应用部署不是简简单单!?
  • Windows电脑安装File Browser与cpolar轻松搭建本地云盘
  • mac配置 iTerm2 使用lrzsz与服务器传输文件
  • 【HBuilderX 中 Git 的使用】
  • Golang结合MySQL和DuckDB提高查询性能
  • 学技术学英语:TCP的三次握手和四次挥手