python分片上传_python上传文件到oss

基础环境

# +++++ 阿里云OSS开发指南里都有详细的步骤,在这里整理了一下自己需要的东西

# 确定开发环境,centOS默认安装了python2.7

# python -V

# 安装python开发包

# yum install -y python-devel

# 安装OSS的sdk

# yum install -y python-pip

# pip2.7 install oss2

# 验证oss2是否安装正确

'''

>>> import oss2

>>> oss2.__version__

'2.6.0'

'''

# 验证OSS扩展库crcmod是否安装

'''

在python环境中,输入一下内容,如果有错误信息,则说明扩展库安装不成功,默认安装oss2的时候会安装扩展库

>>> import crcmod._crcfunext

如果出现安装不成功,则按一下步骤安装:

1、执行以下命令卸载crcmod

# pip uninstall crcmod

2、安装python-devel

3、执行以下命令重新安装crcmod

# pip install crcmod

'''

小文件上传

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import oss2

import os

# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。

auth = oss2.Auth('', '')

# Endpoint以杭州为例,其它Region请按实际情况填写。

bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '')

# 必须以二进制的方式打开文件,因为需要知道文件包含的字节数。with open('', 'rb') as fileobj:

# Seek方法用于指定从第1000个字节位置开始读写。上传时会从您指定的第1000个字节位置开始上传,直到文件结束。

fileobj.seek(1000, os.SEEK_SET)

# Tell方法用于返回当前位置。

current = fileobj.tell()

bucket.put_object('', fileobj)

分片上传

# -*- coding: utf-8 -*-import os

from oss2 import SizedFileAdapter, determine_part_size

from oss2.models import PartInfo

import oss2

# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。

auth = oss2.Auth('', '')

# Endpoint以杭州为例,其它Region请按实际情况填写。

bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '')

key = ''

filename = ''

total_size = os.path.getsize(filename)

# determine_part_size方法用来确定分片大小。

part_size = determine_part_size(total_size, preferred_size=100 * 1024)

# 初始化分片。

upload_id = bucket.init_multipart_upload(key).upload_id

parts = []

# 逐个上传分片。with open(filename, 'rb') as fileobj:

part_number = 1

offset = 0

while offset < total_size:

num_to_upload = min(part_size, total_size - offset)

# SizedFileAdapter(fileobj, size)方法会生成一个新的文件对象,重新计算起始追加位置。

result = bucket.upload_part(key, upload_id, part_number,

SizedFileAdapter(fileobj, num_to_upload))

parts.append(PartInfo(part_number, result.etag))

offset += num_to_upload

part_number += 1

# 完成分片上传。

bucket.complete_multipart_upload(key, upload_id, parts)

# 验证分片上传。with open(filename, 'rb') as fileobj:

assert bucket.get_object(key).read() == fileobj.read()

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

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

相关文章

来电科技:基于Flink+Hologres的实时数仓演进之路

简介&#xff1a; 本文将会讲述共享充电宝开创企业来电科技如何基于FlinkHologres构建统一数据服务加速的实时数仓 作者&#xff1a;陈健新&#xff0c;来电科技数据仓库开发工程师&#xff0c;目前专注于负责来电科技大数据平台离线和实时架构的整合。 深圳来电科技有限公司&…

你说精通 Redis ,你看过持久化的配置吗?

作者 | 阿Q来源 | 阿Q说代码今天让我们从理论和配置两个层面来揭开Redis持久化的神秘面纱。所谓持久化可以简单理解为将内存中的数据保存到硬盘上存储的过程。持久化之后的数据在系统重启或者宕机之后依然可以进行访问&#xff0c;保证了数据的安全性。Redis有两种持久化方案&a…

matlab from有什么用,Matlab函数使用'fromworkspace'将向量传递给simulink

我想编写一个包含simulink块的matlab函数 . 该函数应将数据加载到simulink模型中&#xff0c;运行它&#xff0c;然后从函数返回数据 .我能想到的唯一方法就是在simulink中使用To Workspace和From Workspace块 . 问题是From Workspace块不从功能范围中获取变量&#xff0c;只从…

python字符串连接操作-Python连接字符串过程详解

这篇文章主要介绍了python连接字符串过程详解,文中通过示例代码介绍的非常详细&#xff0c;对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在python中&#xff0c;如果有多个字符串&#xff0c;想要连接在一起&#xff0c;或者说想要拼接在一起该如何操作&…

一种低延迟的超时中心实现方式

简介&#xff1a; 在很多产品中都存在生命周期相关的设计&#xff0c;时间节点到了之后需要做对应的事情。超时中心&#xff08;TimeOutCenter&#xff0c;TOC&#xff09;负责存储和调度生命周期节点上面的超时任务&#xff0c;当超时任务设置的超时时间到期后&#xff0c;超时…

浪潮云海OpenStack X版本技术贡献中国第一

10月6日&#xff0c;OpenStack社区发布第24个版本 Xena&#xff08;简称X版本&#xff09;&#xff0c;浪潮云海在Nova、Cyborg、Cinder、Masakari、Manila等核心项目的技术贡献排名再次获得「中国第一」、全球前三&#xff0c;已连续4个版本荣登社区技术贡献国内榜首&#xff…

【实践案例】Databricks 数据洞察在美的暖通与楼宇的应用实践

简介&#xff1a; 获取更详细的 Databricks 数据洞察相关信息&#xff0c;可至产品详情页查看&#xff1a;https://www.aliyun.com/product/bigdata/spark 作者 美的暖通与楼宇事业部 先行研究中心智能技术部 美的暖通 IoT 数据平台建设背景 美的暖通与楼宇事业部&#xff0…

mysql 默认时间字段 1067,mysql替datetime类型字段设置默认值default

操作服务器环境为Linux centos5.7安装的mysql版本 MariaDB&#xff0c;图简单直接使用命令install上去的。在自己mac上测试数据库修改Alter语句没有问题的&#xff0c;ALTER TABLE XXX.XXX ADD COLUMN createtime datetime NOT NULL DEFAULT NOW() AFTER userinfo;但是在服务器…

tcp ip协议_网络通信-TCP/IP协议族简述

导读&#xff1a;计算机与网络设备要相互通信需要遵守同样的规则。例如&#xff0c;如何找到通信目标、该使用哪种语言通信、怎么结束通信等规则。不同的硬件、操作系统之间的通信都需要遵循同一种规则&#xff0c;这种规则也称为是协议。下面本文主要从以下三个点讨论与互联网…

网站图片全自动加密_11 个值得收藏的在线工具和资源网站

pdf.toPDF 格式免费转换工具&#xff0c;可将 PDF 与其他文件类型相互转换&#xff0c;其他文件类型可自行查看。网站还提供常用的 PDF 工具&#xff0c;包括压缩、修复、拆分和解锁 PDF。ilovepdf完全免费。与 pdf.to 的区别是它支持转换的文件类型少&#xff0c;但 PDF 工具丰…

超详攻略!Databricks 数据洞察 - 企业级全托管 Spark 大数据分析平台及案例分析

简介&#xff1a; 5分钟读懂 Databricks 数据洞察 ~ 更多详细信息可登录 Databricks 数据洞察 产品链接&#xff1a;https://www.aliyun.com/product/bigdata/spark&#xff08;当前产品提供&#xffe5;599首购试用活动&#xff0c;欢迎试用&#xff01;&#xff09; 开源大数…

Alluxio完成C轮5000万美元融资,新设中国区总部力拓国内市场

编辑 | 宋慧 出品 | CSDN云计算 头图 | 付费下载于 IC photo 11月17日&#xff0c;全球开源的云原生数据编排软件开发商Alluxio宣布完成5000万美元C轮融资&#xff0c;该轮融资由新投资方高瓴创投领投&#xff0c;战略投资方和原股东a16z, Seven Seas Partners&#xff0c;火…

关于架构师:角色、能力和挑战

简介&#xff1a; 成为一名架构师可能是很多开发者的技术追求之一。那么如何理解架构&#xff1f;架构师是一个什么样的角色&#xff0c;需要具备什么样的能力&#xff1f;在架构师的道路上&#xff0c;会面临哪些挑战&#xff1f;本文作者道延分享他对架构以及架构师的思考和相…

php 网站移动端自适应,HTML5 移动端自适应布局

场景&#xff1a;为适应各种大小的屏幕自适应布局我知道的两种方式1.使用媒体查询&#xff0c;下面制定了几种适应方式&#xff0c;例如第一个表示屏幕宽度在320px-360px之间的&#xff0c;html字体大小适配为13.65pxmedia only screen and (max-width: 360px) and (min-width:…

python avg_python闭包

本文分为如下几个部分什么是闭包闭包与装饰器闭包等价——偏函数闭包等价——类闭包等价——其他闭包用于捕获状态值闭包等价——协程三种方法实现动态均值什么是闭包闭包是携带着一些自由变量的函数。我们直接来看一个例子def fun_out(a):def fun_in(b):return a breturn fun…

云上技术 | 混合云管理平台多Region架构

简介&#xff1a; 随着现代化进程加速&#xff0c;企业业务规模和迭代速度也今非昔比&#xff0c;在已具备一定规模的中大型电力系统中&#xff0c;会面临着数字化升级的压力&#xff0c;包括复杂组织架构管理、计算资源弹性扩展、IT运维提效等需求。基于电力行业属性部署一朵专…

python定义字体颜色_windows print 自定义字体颜色【python】

windows print 自定义字体颜色import ctypesSTD_INPUT_HANDLE -10STD_OUTPUT_HANDLE -11STD_ERROR_HANDLE -12FOREGROUND_BLACK 0x0FOREGROUND_BLUE 0x01 # text color contains blue.FOREGROUND_GREEN 0x02 # text color contains green.FOREGROUND_RED 0x04 # text colo…

超值爆赞丨Java 程序员推荐的学习教程,刷爆了朋友圈...

文内福利&#xff0c;扫码免费领取Hello&#xff0c;各位锋迷们&#xff0c;我是小千。很多学习Java的小伙伴都在找的全套免费java视频教程&#xff0c;这里全都有&#xff0c;资料齐全&#xff0c;拿来吧你&#xff01;零基础学Java的学习路线图是怎样的&#xff1f;&#xff…

cas server php下载,关于用CAS Server与Php、Jetty配置实现SSO#4

最早由Yale开发的CAS在目前开源SSO市场上占据了80%的份额。简单研究了一下&#xff0c;感觉CAS确实比较成熟&#xff0c;认证流程均可通过证书保证安全&#xff0c;也提供了对多种App服务器和开发环境的支持。比较感兴趣的是两个&#xff1a;Php和Jetty&#xff0c;前者较为常用…

阿里大数据云原生化实践,EMR Spark on ACK 产品介绍

开源大数据社区 & 阿里云 EMR 系列直播 第六期 主题&#xff1a;EMR spark on ACK 产品演示及最佳实践 讲师&#xff1a;石磊&#xff0c;阿里云 EMR 团队技术专家 内容框架&#xff1a; 云原生化挑战及阿里实践Spark 容器化方案产品介绍和演示直播回放&#xff1a;扫描文…