基础环境

# +++++ 阿里云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()

python分片上传_python上传文件到oss相关推荐

  1. python 大文件分片上传_Python实现大文件分片上传

    转载请注明出处:http://blog.csdn.net/jinixin/article/details/77545140 引言想借着这篇文章简要谈谈WebUploader大文件上传与Python结合 ...

  2. python 解析xml格式_Python解析XML文件

    1.概述 Python有三种方法解析XML:SAX,DOM,以及ElementTree: 1.SAX (simple API for XML ) python 标准库包含SAX解析器,SAX用事件驱动 ...

  3. excel数据导入python后不对齐_Python处理Excel文件的实用姿势

    真正的勇士,敢于直面银行卡上的余额,敢于正视磅秤上的数字. 表格数据是最常见的数据类型,Excel是日常办公中最常接触的文件. 上一章提过Python可以通过openpyxl模块处理Excel文件. ...

  4. python 批量下载依赖_python通过txt文件批量安装依赖包的实现步骤

    python通过txt文件批量安装依赖包的实现步骤 如果要用某个开源框架,需要安装多个依赖包可以如下操作: 如依赖文件形式如下(可以不要版本号): txt文件名为requirements.txt,内容 ...

  5. python文件目录无权限_python检查目录文件权限并修改目录文件权限的操作

    我就废话不多说了,还是直接看代码吧! # -*- coding: utf-8 -*- # @author flynetcn import sys, os, pwd, stat, datetime; L ...

  6. python十以内加减法_python生成PDF文件20以内加减法,给上小学的宝宝

    # -*- coding: utf-8 -*- import random from reportlab import platypus from reportlab.lib.units import ...

  7. python如何运行代码_python上怎么跑(运行)代码

    有朋友刚刚学Python,打开Python之后输入打印hello world的语句之后不知道该咋办了,怎么才能将Python代码跑起来呢?下面我将给大家介绍几种方法. 接下来介绍几种运行python代 ...

  8. python做二元线性回归_python上的二元线性回归

    除了前面的优秀答案外,这里还有一个图形装配器,它有一个3d散点图.3d曲面图和一个等高线图. import numpy, scipy, scipy.optimize import matplotlib ...

  9. python print(len(pi_string))_Python如何从文件中读取数据

    从文件中读取数据 1. 读取整个文件 要读取文件,首先来创建一个文件: 然后打开并读取这个文件,再将其内容显示到屏幕上:file_reader.py with open('pi_digits.txt' ...

最新文章

  1. Svchost.exe病毒
  2. BarTender安装常见问题集结
  3. 简介I/O向量、sendv、writev
  4. 251f与ips屏显示器对比_不闪屏,HDR,带鱼屏全都有,LG 29WK600宽屏显示器测评
  5. SAP Cloud for Customer Cloud Application Studio的Trace功能
  6. 全国计算机等级考试职称,全国职称计算机考试与全国计算机等级考试有什么不同?...
  7. 微信小程序横版日历,tab栏
  8. Camtasia混音教程
  9. cocos2d cocostudio
  10. vsftpd配置详解
  11. 企业网站建设能带来的7大好处
  12. FFmpeg码率控制及内置编码参数介绍
  13. Windows 自带计算器的使用
  14. Windows远程桌面连接Mac OS X
  15. 康考迪亚大学应用计算机科学,康考迪亚大学专业设置
  16. 扫地机器人作文说明文提纲_扫地机器人说明文600字
  17. One PUNCH Man——特征选择
  18. 【设计模式2_工厂模式、策略模式】
  19. Linux查主板槽位使用情况,linux下查看主板内存槽与内存信息
  20. CF 221 C Circling Round Treasures - dp - 状压

热门文章

  1. 一支笔卖70万,为的是能打开笔,复杂的像辆车,英国女王都用它
  2. 课堂上老师不讲的有趣物理知识,才是孩子最感兴趣的!
  3. 程序员解决20年前的加密问题
  4. html5调用系统声音1s响一次_20款奔驰GLC260提车改柏林之声音响,音乐诉请,为爱发声!...
  5. Hive设计和体系结构
  6. DBUtils使用详细示例(转载)
  7. Python的Pexpect库
  8. 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
  9. gSoap客户端调用WebService完成后注意内存释放顺序
  10. 基于 Sentry Hive 权限控制命令详解