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

news2025/1/20 10:53:49

大数据系列之:上传图片到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 = ""+key
            print(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':
        break
    marker = 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':
        break
    marker = 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.coloradmin.cn/o/2279335.html

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

相关文章

ToDesk设置临时密码和安全密码都可以当做连接密码使用

ToDesk 在各领域办公都已经是非常常见了 为了安全 ToDesk 设置了连接密码,想连接 需要输入远程码和连接密码 我们刚打开 系统默认给我们用的是临时密码,安全性确实很强 和定时Tokey一样,固定时间切换。 但是 如果我们要经常连接这个电脑&a…

mysql 系统学习1

Linux C/C 操作MySQL - Henkk - 博客园

事件委托,其他事件,电梯导航,固定导航

事件委托改造 tab 栏切换 tab栏切换:前边的案例是 for 循环遍历每个 li 注册鼠标进入事件,给添加了 active类的 a 删除掉 active类,然后给点击的 a 添加上 active类(也就是将已经有的 active 类删除掉,为当前点击到的…

mongoose 支持https踩坑纪实

简述 mongoose是C编写的嵌入式web服务,它能够支持https协议,可以简单的部署,但要做到完美部署,不是那么容易。 部署方法 本人使用的是最新的7.16版,以前版本似乎是要通过修改 头文件中的 MG_ENABLE_SSL 宏定义&…

科研绘图系列:R语言绘制多种图形(multiple plots)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍加载R包数据下载导入数据数据预处理画图输出画图2画图3画图4画图5系统信息介绍 科研绘图系列:R语言绘制多种图形(multiple plots) 加载R包 library(tidyverse) library(RColo…

QT 使用QSqlTableModel对数据库进行创建,插入,显示

文章目录 效果图概述功能点代码分析初始数据插入数据数据显示 总结 效果图 概述 本案例用于对数据库中的数据进行显示等其他操作,其他表格筛选,过滤等功能可看此博客 框架:数据模型使用QSqlTableModel,视图使用QTableView&#x…

Vscode:问题解决办法 及 Tips 总结

Visual Studio Code(简称VSCode)是一个功能强大的开源代码编辑器,广泛用于各种编程语言和开发场景,本博客主要记录在使用 VSCode 进行verilog开发时遇到的问题及解决办法,使用过程中的技巧 文章目录 扩展安装失败调试配…

FANUC机器人系统镜像备份与恢复的具体步骤(图文)

FANUC机器人系统镜像备份与恢复的具体步骤(图文) 镜像备份: 如下图所示,进入文件—工具—切换设备,找到插入的U盘UT1, 如下图所示,进入U盘目录后,创建目录,这里目录名称为11, 如下图所示࿰

模块化架构与微服务架构,哪种更适合桌面软件开发?

前言 在现代软件开发中,架构设计扮演着至关重要的角色。两种常见的架构设计方法是模块化架构与微服务架构。它们各自有独特的优势和适用场景,尤其在C#桌面软件开发领域,模块化架构往往更加具有实践性。本文将对这两种架构进行对比&#xff0…

使用Flask和Pydantic实现参数验证

使用Flask和Pydantic实现参数验证 1 简介 Pydantic是一个用于数据验证和解析的 Python 库,版本2的性能有较大提升,很多框架使用Pydantic做数据校验。 # 官方参考文档 https://docs.pydantic.dev/latest/# Github地址 https://github.com/pydantic/pyd…

游戏引擎学习第81天

仓库:https://gitee.com/mrxiao_com/2d_game_2 或许我们应该尝试在地面上添加一些绘图 在这段时间的工作中,讨论了如何改进地面渲染的问题。虽然之前并没有专注于渲染部分,因为当时主要的工作重心不在这里,但在实现过程中,发现地…

【Vue3 入门到实战】3. ref 和 reactive区别和适用场景

目录 ​编辑 1. ref 部分 1.1 ref定义基本数据类型 1.2 ref 定义引用数据类型 2. reactive 函数 3. ref 和 reactive 对比 3.1 原理 3.2 区别 3.3 使用原则 在 Vue 3 中 ref 和 reactive 是用于创建响应式数据的两个核心函数。它们都属于 Composition API 的一部分&…

蓝桥杯3525 公因数匹配 | 枚举+数学

题目传送门 这个题目是一个数学题,由于只需要找到存在大于1的公因数的两数,所以比较方便的做法是统计每一个数的(质)因数。可以通过筛法统计质因数降低复杂度,但是直接枚举因数也可以满足要求。使用字典记录每个因数出…

django应急物资管理系统

Django应急物资管理系统是一种高效、智能的管理系统,旨在应对自然灾害、事故灾难等突发事件,确保救援物资能够及时、准确地调配到需要的地方。 一、系统背景与意义 在现代社会,各类突发事件频繁发生,对人民生命财产安全构成严重…

python+django+Nacos实现配置动态更新-集中管理配置(实现mysql配置动态读取及动态更新)

一、docker-compose.yml 部署nacos服务 version: "3" services:mysql:container_name: mysql# 5.7image: mysql:5.7environment:# mysql root用户密码MYSQL_ROOT_PASSWORD: rootTZ: Asia/Shanghai# 初始化数据库(后续的初始化sql会在这个库执行)MYSQL_DATABASE: nac…

Qt Desiogn生成的ui文件转化为h文件

1.找到这个工具 2.查找到ui文件以及要转化为的h文件的路径。 3.在1中的工具输入uic /xx/xxx.ui -o /xx/xxx.h即可得到结果。

vim文本编辑器

vim命令的使用: [rootxxx ~]# touch aa.txt #首先创建一个文件 [rootxxx ~]# vim aa.txt #vim进入文件aa.txt进行编辑 vim是vi的升级版,具有以下三种基本模式: 输入模式(编辑模式) 点击i进入编辑模式 (说明…

大华Java开发面试题及参考答案 (上)

TCP 的三次握手和四次挥手过程中各个状态的细节是怎样的? TCP(Transmission Control Protocol)是一种面向连接的、可靠的传输层协议,其三次握手和四次挥手过程涉及多个状态,以下是详细的状态细节: 三次握手…

乐乐音乐Compose-Desktop版

简介 乐乐音乐Compose-Desktop版主要是基于Compose-Desktop框架和musique开发的音乐播放器,它支持lrc歌词和动感歌词( ksc歌词、krc歌词、trc歌词、zrce歌词和hrc歌词等)、多种格式歌词转换器及制作动感歌词、翻译歌词和音译歌词。 编译环境 ideaIU-2024.1.4、JD…

HTML5 教程(下)

HTML5 Video(视频) HTML5 Video(视频) 在本节内容中,你将了解到在HTML5中视频是如何工作的、主流浏览器支持的视频格式以及如何对网页中的视频进行控制。 很多站点都会使用到视频. HTML5 提供了展示视频的标准。 检测您的浏览器是否支持 HTML5 视频: …