基础环境

# +++++ 阿里云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上传文件到oss_python实现上传文件到OSS相关推荐

  1. pyaudio:基于pyaudio利用Python编程从电脑端录制音频保存到指定文件夹+将录音上传服务器+录音进行识别并转为文本保存

    pyaudio:基于pyaudio利用Python编程从电脑端录制音频保存到指定文件夹+将录音上传服务器+录音进行识别并转为文本保存 目录 输出结果 代码实现 输出结果 代码实现 # -*- codi ...

  2. python watchdog 同时检测到多个事件_python中watchdog文件监控与检测上传功能

    引言 上一篇介绍完了观察者模式的原理,本篇想就此再介绍一个小应用,虽然我也就玩了一下午,是当时看observer正好找到的,以及还有Django-observer,但Django很久没用了,所以提下这 ...

  3. Python+django网页设计入门(6):文件上传与数据导入

    前导课程: Python+django网页设计入门(5):自定义用户注册与登录功能 Python+django网页设计入门(4):用户登录与登录验证 Python+django网页设计入门(3):使用 ...

  4. selenium+python自动化测试系列(二):AutoIt工具实现本地文件上传

    AutoIt使用简单说明 AutoIt的安装这里就不在啰嗦,可以参考AutoIt安装或者自行搜索解决. 第一步:定位上传文件路径的文本框 这里举例说明,如何定位?如图 这里我们看到上传文件的类型是bu ...

  5. Python+selenium 自动化 - 实现自动导入、上传外部文件实例演示

    一开始我觉得导入外部文件是需要操作 windows 的文件窗口呢,后来发现原来不用那么麻烦,只要给文件上传的元素传一个本地路径就好了,就是一个 input 类型的. 右键元素点击检查可以看到对应的元素 ...

  6. jquery ajax java上传文件_jQuery Ajax方式上传文件的方法

    jQuery Ajax方式上传文件用到两个对象 第一个对象:FormData 第二个对象:XMLHttpRequest 目前新版的Firefox 与 Chrome 等支持HTML5的浏览器完美的支持这 ...

  7. 打包本地文件, 并使用Winscp上传脚本

    2019独角兽企业重金招聘Python工程师标准>>> @echo off set path=%SystemRoot%\system32;%SystemRoot%;%ProgramF ...

  8. php上传图片限制类型,php,_使用php的图片上传类进行图片上传,总是提示:上传文件时出错 : 未允许类型 。都是默认的配置,php - phpStudy...

    使用php的图片上传类进行图片上传,总是提示:上传文件时出错 : 未允许类型 .都是默认的配置 使用php的图片上传类进行图片上传,总是提示:上传文件时出错 : 未允许类型 .都是默认的配置 $upl ...

  9. 移动端上传大文件到服务器,android上传大文件到服务器地址

    android上传大文件到服务器地址 内容精选 换一换 安装传输工具在本地主机和Windows云服务器上分别安装数据传输工具,将文件上传到云服务器.例如QQ.exe.在本地主机和Windows云服务器 ...

  10. python线上编辑问题_python django - static文件处理与线上部署测试

    static文件相关操作涉及: a. 文件位置与访问路径映射 b. setting.py与static相关配置 STATIC_URL STATIC_ROOT STATICFILES_DIRS c. h ...

最新文章

  1. md5 java代码_JAVA简单实现MD5注册登录加密实例代码
  2. 力扣836.矩形重叠
  3. 感知机(Perceptron)为什么不能表示异或(XOR)
  4. C# winfrom 添加Log4Net日志库
  5. android字体和可免费商用的字体
  6. 用USRP-LW N210搭建软件雷达系统
  7. python多行写入文件_写入文件
  8. 惠普bios硬重置_惠普BIOS密码重置工具|惠普笔记本BIOS密码重置工具 - 万方软件下载站...
  9. 计算机科学与技术 未来,浅析计算机科学与技术的未来发展趋势
  10. TikTok Shop 英国限售商品规则
  11. Axure RP8手机边框
  12. win10连接android手机助手下载,完美Win10手机助手电脑版
  13. 云从科技资深算法研究员:详解跨镜追踪(ReID)技术实现及难点 | 公开课笔记
  14. JVM内存模型-回忆学习总结
  15. Halcon 字体设置
  16. 125亿元!华为公开晒年终奖
  17. Visual Studio 2022安装与使用教程
  18. C++ 风格与技术 FAQ(中文版)
  19. Windows7安装IE11步骤和中文安装包超简单
  20. CAD怎么导出黑白PDF图纸?快来学习下小妙招

热门文章

  1. 耿楠《LaTeX 中文教程》随堂学习记录
  2. python连接服务器informix_Python 用odbc连接Informix数据库 64位
  3. 思科模拟器之工大瑞普版(u7)下载地址
  4. Linux命令详解词典高频命令(2)
  5. windows socket 网络编程
  6. 软件测试流程改进的几点看法
  7. 大数据Hadoop学习(一)入门
  8. Python科学计算系列5—导数
  9. 前端学习分为几个阶段,你属于哪个阶段?
  10. html5用户注册页面代码,HTML5注册页面示例代码