使用python上传和下载文件到oss中

python向al的oss上传文件,简单上传,简单下载 刚学习了使用python向al的oss上传文件,简单上传,简单下载,和大家分享下 import os import yaml import oss2 import sys import tempfile #从yml文件中获取配置 def getyml(): # 获取当前文件路径 filePath = os.path.dirname(__file__) # 获取当前文件的 fileNamePath = os.path.split(os.path.realpath(__f 阅读详情

参看阿里接口文档链接: https://help.aliyun.com/document_detail/88426.html

上传本地文件到oss

# -*- coding: utf-8 -*-
import oss2
import os
AccessKeyId = 'xxx'
AccessKeySecret = 'xxx'
# [这个是必须的]
# 参考链接: https://help.aliyun.com/document_detail/31837.html
ENDPOINT = 'https://oss-cn-hangzhou.aliyuncs.com' 

class HandleOSS(object):
    def __init__(self, key_id, key_secret, endpoint, bucket='qmgy-private-hz-dev'):
        '''
        初始化
        :param key_id:
        :param key_secret:
        :param bucket: bucket名称
        '''
        self.key_id = key_id
        self.key_secret = key_secret
        self.endpoint = endpoint
        self.bucket = bucket

        self.auth = oss2.Auth(key_id, key_secret)
        if bucket:
            self.bucket = oss2.Bucket(self.auth, self.endpoint, self.bucket)


    def update_one_file(self, file_path, oss_path):
        '''
        将文件上传到oss上
        :param file_dir: 要上传的文件
        :param oss_dir: oss上的路径, 要存在oss上的那个文件
        :return:
        '''
        file_name = file_path.split('/')[-1]
        oss_save_path = f'{oss_path}/{file_name}'
        res = self.bucket.put_object_from_file(oss_save_path, file_path)


if __name__ == '__main__':
    file_path = "文件路径/demo_test.txt"
    # 前面已经设置了bucket, 所以这里只需要设置后面的路径即可
    oss_path = "algo/cpv_result" 
    handle = HandleOSS(AccessKeyId, AccessKeySecret, ENDPOINT)
    handle.update_one_file(file_path,oss_path)

下载文件

# -*- coding: utf-8 -*-
import oss2
import os
AccessKeyId = 'xxx'
AccessKeySecret = 'xxx'
# [这个是必须的]
# 参考链接: https://help.aliyun.com/document_detail/31837.html
ENDPOINT = 'https://oss-cn-hangzhou.aliyuncs.com' 

class HandleOSS(object):
    def __init__(self, key_id, key_secret, endpoint, bucket='qmgy-private-hz-dev'):
        '''
        初始化
        :param key_id:
        :param key_secret:
        :param bucket: bucket名称, 这里是qmgy-private-hz-dev
        '''
        self.key_id = key_id
        self.key_secret = key_secret
        self.endpoint = endpoint
        self.bucket = bucket

        self.auth = oss2.Auth(key_id, key_secret)
        if bucket:
            self.bucket = oss2.Bucket(self.auth, self.endpoint, self.bucket)


    def update_one_file(self, file_path, oss_path):
        '''
        将文件上传到oss上
        :param file_dir: 要上传的文件
        :param oss_dir: oss上的路径, 要存在oss上的那个文件
        :return:
        '''
        file_name = file_path.split('/')[-1]
        print("file_path===: ", file_path)
        oss_save_path = f'{oss_path}/{file_name}'
        print("oss_save_paht===: ", oss_save_path)
        res = self.bucket.put_object_from_file(oss_save_path, file_path)
        print(res.status)
        # print(res.data)



    def download_one_file(self, oss_path, save_dir):
        '''
        下载单个文件
        :param oss_path: 文件所在的oss地址
        :param save_dir: 要保存在本地的文件目录
        :return:
        '''

        file_name = oss_path.split('/')[-1]
        save_path = os.path.join(save_dir, file_name)
        print("save_path===:", save_path)
        result = self.bucket.get_object_to_file(oss_path, save_path)
        if result.status == 200:
            return '下载成功'
        pass

    def download_many_file(self, oss_dir, save_dir):
        '''
        批量下载文件
        :param oss_dir: oss上要下载的文件目录
        :param save_dir: 要存在本地的文件目录
        :return:
        '''

        obj = oss2.ObjectIterator(self.bucket, prefix=oss_dir)
        # 遍历oss文件夹获取所有的对象列表,i.key是文件的完整路径
        for i in obj:
            # 如果文件是以斜杠结尾的,说明不是文件,则跳过
            if i.key.endswith('/'):
                continue
            # 文件名:文件路径按照斜杠分割取最后一个
            file_name = i.key.split('/')[-1]
            # 下载到的具体路径
            save_path = os.path.join(save_dir, file_name)
            # 从oss下载
            self.bucket.get_object_to_file(i.key, save_path)

if __name__ == '__main__':
    file_path = "xx/demo_test.txt"
    oss_path = "algo/cpv_result"
    download_oss_path = "algo/cpv_result/demo_test.txt"
    save_dir = "xxx"

    handle = HandleOSS(AccessKeyId, AccessKeySecret, ENDPOINT)
    handle.update_one_file(file_path,oss_path)
    print("上传成功, 开始下载")
    handle.download_one_file(download_oss_path, save_dir)
    print('目录下载开始')
    handle.download_many_file(oss_path, save_dir)
使用Python将OSS文件免费下载到本地:第四步 将ECS中文件下载到本地 大家好,我是水滴~~本文将介绍了使用的知识点、以及将ECS中文件下载到本地的代码、并对该代码进行详细解析、最后给出部署方案,希望能对你有所帮助! 阅读详情

相关推荐

使用Python将OSS文件免费下载到本地:项目分析和准备工作

在当今的云计算环境中,OSS(对象存储服务)成为存储和管理文件的常见选择。然而,随着时间的推移,OSS中的文件数量不断增加,导致存储费用越来越高(OSS计费规则OSS产品定价中明确了存储费用的单价为元/GB/月,例如标准型(本地冗余存储)单价为0.12元/GB/月,那么存储1T的文件,每月约为122.88元。为了节约成本,我们可以将旧的数据从OSS中下载到本地计算机,以便进行进一步处理或离线访问。通过使用Python编程语言,我们可以实现这个目标,并且可以免费完成。

水滴的博客 5211

Python实现对阿里云OSS对象存储的操作(连接、上传、下载、列举等功能)

oss的使用python代码操作oss

感谢阅读 9098

对象存储oss

auth = oss2.Auth('yourAccessKeyId', 'yourAccessKeySecret') bucket = oss2.Bucket(auth, Endpoint, Bucket) resumable_download和resumable_upload

m0_37737957的博客 804

Python配置阿里云OSS存储实现文件上传下载功能详解

在现代软件开发中,对象存储服务(Object Storage Service, OSS)已成为云存储的核心组件。阿里云OSS作为国内领先的云存储解决方案,提供了高可用、低成本的数据存储能力。本文将详细介绍如何通过Python语言配置阿里云OSS存储,并实现文件的上传与下载功能,帮助开发者快速构建云存储应用。

专注于与编程相关的知识内容分享 2229

python多线程,断点续传下载程序

python多线程,断点续传下载程序,功能比较简单,可以进行二次开发。实现更好用的 功能。

在MacBook上直接跑Windows Server 2022:一个开发者的真实踩坑与配置全记录

本文详细记录了在MacBook上原生运行Windows Server 2022的完整流程与优化技巧。通过Boot Camp实现非虚拟机安装,开发者可以充分利用Mac硬件性能,搭建高效的本地开发环境,特别适合需要测试跨平台应用和服务器功能的场景。文章涵盖驱动处理、分区策略、Docker配置等关键步骤,为技术极客提供实用指南。

weixin_42620913的博客 247

【Python】3.python实现图片上传到阿里云OSS

默认已知oss配置参数。

颜淡慕潇 6212

基于PWM的汽车仪表步进电机微步驱动优化实践

本文深入探讨了基于PWM的微步驱动技术,用于优化汽车仪表步进电机的运行性能。通过将传统的分步驱动升级为PWM微步细分驱动,利用正弦/余弦查表法合成旋转磁场,有效消除了指针抖动与噪声,实现了指针的平滑、精准运动。文章以STM32和VID2905电机为例,提供了详细的硬件连接、代码实现及高级优化技巧,为提升汽车仪表体验提供了实用方案。

weixin_29169505的博客 512

[495]python上传下载OSS文件

阿里云的 GPU 云服务器 按量收费,训练时临时购买,训练完了就释放。但这样的话,每次要上传训练数据,需要耗费很多时间。这时我想到了阿里云的 OSS对象存储服务。 阿里云的 OSS服务相当于一个云盘,按存储量、访问次数、下载流量 三项计费,而且外网下载收费,内网之间访问不收钱。 使用体验,阿里云的内网传输速度确实极快,经过我用多次传输 1G大小的文件的体验,内网速度在...

周小董 2423

数字电路与逻辑设计——组合逻辑篇

在数字电路中,根据逻辑功能的不同而分为两大类,组合逻辑电路与时序逻辑电路。 1、何为组合逻辑电路 我们只需铭记一点就是,这种电路的输出Y只与当时的输入X有关,而与之前的输入X’无关。所以这是一个可以随输入X的变化而瞬变输出Y的电路,如果用我们的Verilog代码来表示,则可能会出现在如下语句中: ①针对wire型变量,assign Y = X1 && X2; ②针对reg型变量,alway

蓝湖江船客的博客 1万+

WhatsApp协议算法

我想其实有很多人还不太了WhatsApp群控,简单来说,它和我们常使用的微信聊天软件是类似的,只不过它是基于通讯录的,操作起来比较简单便捷,所以现在有很多国家都喜欢用WhatsApp。一般情况下,筛号不会造成账号被封的情况,但是呢,如果筛号的频率太快,就会被系统限制筛号能力,不再返回筛号结果,所以,筛号数量和速度一定要控制好。前天逛街突然灵光一现,为什么不试试多路访问呢,简单来说就是信道复用技术,马上跑回家,调取接口,接入通道,导入已经转换成协议的账号,成功登录!

2403_87755661的博客 1943

python 上传下载oss文件

# -*- coding: utf-8 -*-import oss2 endpoint = 'http://oss-cn-hangzhou.aliyuncs.com' # Suppose that your bucket is in the Hangzhou region. auth = oss2.Auth('<Your AccessKeyID>', '<Your AccessK...

qq_35202206的博客 1762

STM32串口通信实战:从CubeMX配置到printf重定向全解析

串口通信是嵌入式系统中最基础且广泛使用的数据交换方式,它基于异步串行通信原理,通过TX(发送)和RX(接收)两根信号线实现设备间的全双工通信。其技术价值在于协议简单、硬件成本低、可靠性高,是单片机与上位机调试、传感器数据采集、设备控制等场景的首选方案。在STM32等ARM Cortex-M系列MCU中,USART外设通过硬件自动处理时序,大大减轻了CPU负担。本文聚焦于嵌入式竞赛与开发中的高频需求,以STM32G431RBT6为例,详解通过CubeMX配置USART1、实现按键触发数据发送、并完成print

weixin_30603633的博客 546

阿里云python中文社区_python安装使用阿里云OSS上传/下载/删除文件 - pytorch中文网...

一、OSS安装1、安装python-devel对于Windows和Mac OS X系统,由于安装Python的时候会将Python依赖的头文件一并安装,因此您无需安装python-devel。对于CentOS、RHEL、Fedora系统,请执行以下命令安装python-devel:yum install python-devel对于Debian,Ubuntu系统,请执行以下命令安装python-d...

weixin_39774682的博客 959

基于Simulink的柔性关节人形机器人振动抑制控制仿真

本文完成了基于Simulink的柔性关节人形机器人振动抑制控制仿真,实现了:✅ 建立二质量柔性关节动力学模型✅ 设计加速度反馈主动阻尼控制器✅ 对比陷波滤波与状态反馈效果✅ 验证大幅运动下的快速振动衰减能力✅ 为高动态人形机器人操作(如击掌、搬运)提供平滑执行基础。

xiaoheshang_123的博客 130

【AI Agent系列】【阿里AgentScope框架】深入源码:Msg是如何转变成模型需要的Prompt形式的?多模态Prompt如何构建?

前面咱们学习AgentScope,在使用Agent来对话时,输入为一个 Msg 对象,不能是字符串,然后在Agent内部,会将Msg对象转换为模型接受的Prompt。那 AgentScope 如何根据 Msg 形成相应模型接收的Prompt结构的?如何使用 Msg 带入更多的参数,传递给大模型呢?

同学小张的博客 1534

Python脚本之阿里云OSS上传、下载文件

阿里云oss:上传、下载文件

谢智超的博客 5927

PMP–一、二、三模–分类–13.干系人管理

A:确认是否已制定沟通管理计划,使业务干系人认识到项目的成功之处。B:让业务干系人参加冲刺回顾会议。C:与发起人和关键干系人一起确定产品待办事项列表中的优先要务,以便交付商业利益。D:为关键干系人开展收尾调研。C。

stqer的博客 1418

阿里云OSS使用-Python

阿里云oss是一个很不错的产品,比较适合一些小公司使用,但是并不适合个人使用 太贵了。他对上传文件的量没有限制,仅对下载的量有限制。根据下载量来收费。其实还是挺贵的。 但作为储存来说感觉还是不错的。尤其是对一些极客。阿里云oss不像百度云和360云那种界面操作 他更多的是采用put命令来操作,网页也可以上传文件,但是文件大小限制在8MB,如果使用了put命令 文件大小限制在5G以内。还有一

Json_Nie的专栏 5672

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

oss2模块和aliyun oss链接

安装oss pip install oss2 首先已经理解OSS 基本概念,如Bucket、Object、Endpoint、AccessKeyId和AccessKeySecret等。   下面介绍如何使用OSS Python SDK来访问OSS服务,包括查看Bucket列表,上传文件,下载文件,查看文件列表等。 默认这些程序是写在一个脚本文件里,通过Python程序可以执行。并且,后面的...

weixin_30644369的博客 273

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

如何在OSS上实现大文件的断点下载和上传

文/伞兴 OSS(开放存储服务)是面向海量非结构化数据对象的存储服务。随着云计算的普及和飞速增长,越来越多的开发者把他们的应用建筑在了OSS之上,然而OSS的开发资料还不是很多。我在这里抛砖引玉,通过回答一个经常被问及的问题——如何在OSS上实现大文件的断点续传功能——希望有更多的高手来一同分享自己在云存储上的开发经验。 OSS对外提供的是RESTful形式的接口,其最重要的特点之一是无状态性(s...

《程序员》官方BLOG 969

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

【免费下载】 Alibaba Cloud OSS SDK 下载及安装教程

Alibaba Cloud OSS SDK 是一个用于访问阿里云对象存储服务(OSS)的软件开发工具包(SDK)。该SDK支持多种编程语言,包括Java、Go、C#、TypeScript/Node.js、PHP和Python等。通过使用该SDK,开发者可以方便地在应用程序中集成阿里云OSS服务,实现文件的上传、下载、删除等操作。 ## 2. 项目下载位置 要下载 Alibaba Cloud O...

gitblog_01235的博客 1569

OSS-PYTHON_SDK的使用思路探讨

OSS-PYTHON_SDK的使用思路探讨 利用oss-python-sdk进行文件下载的思路 将sdk模块加入到python的工程中,将上传的名字与下载的名字全部存入数据库,数据库内的用户名与文件夹一致,利用上传的文件名找到文件,进行下载 将下载后的文件存到本地的相应文件夹内,利用python控制本地计算机对文件进行处理转换为资源文件,将资源文件上传到资源服务器,客户端下载,在应用程序中置入转...

bobcameltom的博客 325

python如何上传文件_Python 上传文件

Python基础教程:Flask上传文件(包含中文)保存后乱码问题解决Python基础教程讲解:Flask是支持文件上传的, 近来做了一个上传SQL文件的功能, SQL中会使用到中文, 泰文, 马来西亚文等多种语言, 我们通过Flask接收到文件, 先把文件保存在后端, 保存后却发现是乱码.通过上面一段代码接收并保存中文文件会乱码的.如何解决呢?首先考虑乱码...文章千锋Python讲堂2019-...

weixin_39840606的博客 2753

Python操作阿里云oss

Bucket 存储空间 Object 对象或者文件 Endpoint OSS 访问域名 Region 区域或者数据中心 AccessKey AccessKeyId 和 AccessKeySecret 的统称,访问密钥 一 安装阿里云第三方库oss2 pip3 install oss2 api文档地址:https://aliyun-oss-python-sdk.readthedocs.io/en/stable/api.html#id12 二 重要参数说明 工作当中,如果要操作oss,需要向管理员(运维人员.

定格空间 3086

利用Wireshark和OSS的API文档简单实现上传和下载

背景及目的 由于各个开发者使用的开发语言可能在官方SDK找不到相应的语言版本,就必须自主开发SDK。本文根据wireshark和API文档,来简单实现上传和下载的请求,给需要自主开发的开发者提供一个简单的示例。 准备工作 安装wireshark 官网地址:https://www.wireshark.org/download.html找到合适的平台及版本,...

weixin_34167819的博客 642
上一篇: python中max使用求dict中的最大值
下一篇: supervisor常用命令
junjunzai123
博客等级 码龄10年 148粉丝 78原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值