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
# 阿里云主账号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()
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持萬仟网。
如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!
python 上传文件到网络设备_基于python实现上传文件到OSS代码实例相关推荐
- java 实现违章_基于JAVA的车辆违章查询数据调用代码实例
基于JAVA的车辆违章查询数据调用代码实例 代码描述:基于JA V A的车辆违章查询数据调用代码实例 相关平台:聚合数据 import java.io.BufferedReader; import j ...
- java查询序列_基于JAVA的苹果序列号查询api调用代码实例
代码描述:基于JAVA的苹果序列号查询api调用代码实例 关联数据:苹果序列号 接口地址:http://www.juhe.cn/docs/api/id/37 1.[代码][Java]代码 import ...
- 医院医生评价的java代码_基于JAVA的医院信息查询接口调用代码实例
基于JAVA的医院信息查询接口调用代码实例 import java.io.BufferedReader; import java.io.DataOutputStream; import java.io ...
- python如何爬取图片到指定文件夹论文_基于Python的图片爬虫程序设计
互联网中包含大量有价值的 数据,网络爬虫通过既定规则可 以自动地抓取互联网数据并下载 至本地存储.研究网络爬虫的工 作原理和基于 Python 网络信息爬 取技术模块功能,基于 Requests- B ...
- python中numpy数组的合并_基于Python中numpy数组的合并实例讲解
基于Python中numpy数组的合并实例讲解 Python中numpy数组的合并有很多方法,如 - np.append() - np.concatenate() - np.stack() - np. ...
- python的图书管理项目教程_基于python图书馆管理系统设计实例详解
写完这个项目后,导师说这个你完全可以当作毕业项目使用了,写的很全,很多的都设计考虑周全,但我的脚步绝不止于现在,我想要的是星辰大海!与君共勉! 这个项目不是我的作业, 只是无意中被拉进来了,然后就承担 ...
- python制作浏览器 脚本之家_基于Python打造账号共享浏览器功能
本篇文章介绍的内容会涉及到以下知识: PyQt5的使用; Selenium的使用; 代理服务器的架设和使用: 一.账号限制之痛 在如今的互联网中,免费的信息和资源占据了很大一部分,各类互联网应用提供了 ...
- python实现空气质量提醒程序_基于Python实现空气质量指数可视化
前面我们已经爬取了全国城市空气质量数据( 基于Python实现城市空气质量爬取 ),基于之前我们爬取的数据,本文将使用Python将空气质量最好的前20个城市以柱状图的形式展示出来,点击对应的柱状图能 ...
- python怎样使用各个日期赤纬_基于Python的天文软件命令行界面设计与实现
计算机软件技术的不断发展,推动了人机交互技术的长足进步.从传统的命令行(Command Line Interface,CLI),到图形用户界面(Graphical User Interface,GUI ...
最新文章
- 【OpenCV 4开发详解】直方图应用
- inner class java_Java Inner Class
- linux之reboot
- python 创建txt文件并写入字符串-python创建txt文件
- 电动力学每日一题 2021/10/14
- Shiro-550反序列化漏洞复现
- 甘肃计算机教室中标,大单纷至沓来 甘肃百亿工程浪潮电脑中标8000台
- weakhashmap_Java WeakHashMap putAll()方法与示例
- mac linux 权限 常用命令
- 蚂蚁区块链正式升级为蚂蚁链:首次公布“日活”超1亿
- MFC中给对话框重绘边框
- JavaScript中清空数组的三种方式对比以及JavaScript常用数组操作方法
- I/O(输入/输出)---字节流与字符流
- 二叉树的三种非递归遍历
- Excel自动批量发邮件
- css怎么设置图片卷角效果,用css3制作纸张效果(外翻卷角)
- 最新影视双端app对接苹果cms+详细安装教程
- (多方法)彻底解决MAC终端[进程已完成]的“死机”现象
- [GridView]解决js-xlsx导出Excel时数字太长变为科学计数的问题
- 苹果计算机转换,便携毕亚兹苹果计算机转换器,超极本的少接口都能转换身份...