基础环境

# +++++ 阿里云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代码实例相关推荐

  1. java 实现违章_基于JAVA的车辆违章查询数据调用代码实例

    基于JAVA的车辆违章查询数据调用代码实例 代码描述:基于JA V A的车辆违章查询数据调用代码实例 相关平台:聚合数据 import java.io.BufferedReader; import j ...

  2. java查询序列_基于JAVA的苹果序列号查询api调用代码实例

    代码描述:基于JAVA的苹果序列号查询api调用代码实例 关联数据:苹果序列号 接口地址:http://www.juhe.cn/docs/api/id/37 1.[代码][Java]代码 import ...

  3. 医院医生评价的java代码_基于JAVA的医院信息查询接口调用代码实例

    基于JAVA的医院信息查询接口调用代码实例 import java.io.BufferedReader; import java.io.DataOutputStream; import java.io ...

  4. python如何爬取图片到指定文件夹论文_基于Python的图片爬虫程序设计

    互联网中包含大量有价值的 数据,网络爬虫通过既定规则可 以自动地抓取互联网数据并下载 至本地存储.研究网络爬虫的工 作原理和基于 Python 网络信息爬 取技术模块功能,基于 Requests- B ...

  5. python中numpy数组的合并_基于Python中numpy数组的合并实例讲解

    基于Python中numpy数组的合并实例讲解 Python中numpy数组的合并有很多方法,如 - np.append() - np.concatenate() - np.stack() - np. ...

  6. python的图书管理项目教程_基于python图书馆管理系统设计实例详解

    写完这个项目后,导师说这个你完全可以当作毕业项目使用了,写的很全,很多的都设计考虑周全,但我的脚步绝不止于现在,我想要的是星辰大海!与君共勉! 这个项目不是我的作业, 只是无意中被拉进来了,然后就承担 ...

  7. python制作浏览器 脚本之家_基于Python打造账号共享浏览器功能

    本篇文章介绍的内容会涉及到以下知识: PyQt5的使用; Selenium的使用; 代理服务器的架设和使用: 一.账号限制之痛 在如今的互联网中,免费的信息和资源占据了很大一部分,各类互联网应用提供了 ...

  8. python实现空气质量提醒程序_基于Python实现空气质量指数可视化

    前面我们已经爬取了全国城市空气质量数据( 基于Python实现城市空气质量爬取 ),基于之前我们爬取的数据,本文将使用Python将空气质量最好的前20个城市以柱状图的形式展示出来,点击对应的柱状图能 ...

  9. python怎样使用各个日期赤纬_基于Python的天文软件命令行界面设计与实现

    计算机软件技术的不断发展,推动了人机交互技术的长足进步.从传统的命令行(Command Line Interface,CLI),到图形用户界面(Graphical User Interface,GUI ...

最新文章

  1. 【OpenCV 4开发详解】直方图应用
  2. inner class java_Java Inner Class
  3. linux之reboot
  4. python 创建txt文件并写入字符串-python创建txt文件
  5. 电动力学每日一题 2021/10/14
  6. Shiro-550反序列化漏洞复现
  7. 甘肃计算机教室中标,大单纷至沓来 甘肃百亿工程浪潮电脑中标8000台
  8. weakhashmap_Java WeakHashMap putAll()方法与示例
  9. mac linux 权限 常用命令
  10. 蚂蚁区块链正式升级为蚂蚁链:首次公布“日活”超1亿
  11. MFC中给对话框重绘边框
  12. JavaScript中清空数组的三种方式对比以及JavaScript常用数组操作方法
  13. I/O(输入/输出)---字节流与字符流
  14. 二叉树的三种非递归遍历
  15. Excel自动批量发邮件
  16. css怎么设置图片卷角效果,用css3制作纸张效果(外翻卷角)
  17. 最新影视双端app对接苹果cms+详细安装教程
  18. (多方法)彻底解决MAC终端[进程已完成]的“死机”现象
  19. [GridView]解决js-xlsx导出Excel时数字太长变为科学计数的问题
  20. 苹果计算机转换,便携毕亚兹苹果计算机转换器,超极本的少接口都能转换身份...

热门文章

  1. 15-奇怪的Js文件引用问题
  2. 计算氦原子的基态能级
  3. 【数理知识】《随机过程》方兆本老师-目录
  4. 9.5 程序示例--推荐系统-机器学习笔记-斯坦福吴恩达教授
  5. 2.7 程序示例--多分类问题-机器学习笔记-斯坦福吴恩达教授
  6. 【Android工具】Cx文件管理器,Cx File Explorer安卓samba客户端
  7. 【S操作】轻松优雅防止(解决)两次掉进同一坑的完美解决方案,arduino通知提醒方案...
  8. 2017年新年问候-组内
  9. busybox编译笔记
  10. 728. Self Dividing Numbers