阿里云 oss python3 例子

阿里云的oss SDK又是不支持python3,头疼头疼。本想改一改它的SDK,让它支持python2+python3,无奈里面大量的代码使用不带括号的print,工作量恐怖。

幸好oss的使用非常简单,我翻了翻相关文档,弄了个简单可运行的例子(python2, python3都支持),主要的代码如下:aliyun-oss-python3

请注意,需要填写自己的accessKeyId等相关信息

import base64

import hmac

from hashlib import sha1

import time

try:

import urllib.request as urllib

except ImportError:

import urllib2 as urllib

accessKeyId = ‘ic20Gwxms6ynLlkx‘

accessKeySecret = ‘lhTBND3SHvSawihEcIL6LFz597xtMj‘

bucket = ‘fast-loan‘

region_host =  ‘oss-cn-hangzhou.aliyuncs.com‘

# use signature in url

def _oss_file_url(method, bucket, filename, content_type):

now = int(time.time())

expire = now - (now % 1800) + 3600 # expire will not different every second

tosign = "%s\n\n\n%d\n/%s/%s" % (method, expire, bucket, filename)

if method == ‘PUT‘ or method == ‘POST‘:

tosign = "%s\n\n%s\n%d\n/%s/%s" % (method, content_type, expire, bucket, filename)

h = hmac.new(accessKeySecret.encode(), tosign.encode(), sha1)

sign = urllib.quote(base64.encodestring(h.digest()).strip())

return ‘http://%s.%s/%s?OSSAccessKeyId=%s&Expires=%d&Signature=%s‘ % (

bucket, region_host, filename, accessKeyId, expire, sign

)

def get_file_url(bucket, filename):

return _oss_file_url(‘GET‘, bucket, filename, None)

def http_put(bucket, filename, cont, content_type):

url = _oss_file_url(‘PUT‘, bucket, filename, content_type)

req = urllib.Request(url, cont)

req.get_method = lambda: ‘PUT‘

req.add_header(‘content-type‘, content_type)

try:

return urllib.urlopen(req)

except urllib.HTTPError as e:

print(e)

http_put(bucket, ‘mytestkey‘, b‘sample value‘, ‘text/plain‘)

url = get_file_url(bucket, ‘mytestkey‘)

print(urllib.urlopen(url).read())

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2025-02-01 19:56:53

阿里云 oss python3 例子的相关文章

angulaijs中的ng-upload-file与阿里云oss服务的结合,实现在浏览器端上传文件到阿里云(速度可以达到1.5M)

angularjs结合aliyun浏览器端oos文件上传加临时身份验证例子 在服务端获取sts 源码: public class StsServiceSample { // 目前只有"cn-hangzhou"这个region可用, 不要使用填写其他region的值 //<setting name="accessKeyId" value="H6JSh0Y****z2cGa" /> //<setting name="ecr

阿里云oss总是提示SignatureDoesNotMatch错误怎么办

网上的所有阿里云oss(C#)的例子几乎试遍了,为什么还是提示SignatureDoesNotMatch错误?什么原因?怎么办?下载一个阿里云提供的windows客户端发现,依然提示签名错误. 开始怀疑是否因为OSS是在Access Key启用后才购买启用的原因导致的,于是删除当前的Access Key,然后重新创建一个Access Key,复制粘贴到源码里,上传.下载,一切Ok

thinkphp集成系列之阿里云oss

web2.0时代:除了纯信息展示类的网站:基本都是有文件上传功能的: 最不济你得让用户换个头像吧:但是随着业务的发展: 如果上传的文件都和网站程序源代码放在一起:那是有相当多的弊端的: 1:静态文件会占用大量带宽: 2:服务器的成本略高: 常规的做法是把php源代码放到一台服务器上:图片等静态文件放在另一台服务器上: 当一个神奇的“云”时代的到来后:一切就变的更加简单了: 在业务还比较小的时候:我们无需大费周折的去搞一台静态文件服务器:直接使用第三方的即可: 好了:洛里啰嗦了半天:下面请出本篇博

用DzzOffice管理阿里云OSS

在DzzOffice分两种方式管理阿里云OSS 1.把阿里云oss作为多人或企业的共享网盘使用. 2.接入个人的阿里云oss管理,可同时管理多个bucket,多个bucket之间可以互传文件. 下面先介绍第一种方式,OSS多人用作网盘使用. 首先打开DzzOffice开始菜单,在应用列表中打开”云设置和管理“应用 打开后界面如下 先确保要使用的OSS是可用状态 然后点击“企业盘” 这里的企业盘名称是可以修改的,根据自己想起的名字. 我在企业中用,我把它改成我们企业的名称“乐云网盘”一会在网盘管理

(转)云存储:阿里云OSS 、又拍云和 七牛 的比较

阿里OSS:好处就是,那是一套完整的体系,存储,数据库,CDN,服务器,阿里都可以给你全包.缺点,费用对于没有盈利的网站来说太高了,好像定位就是给那些高端客户使用的,而且CDN,OSS的流量是分开收费,带宽(2倍成本,呵呵).又拍云:算是老牌静态存储服务商,自带有CDN.存储空间可以弹性增加(不知道可不可以弹性减少,我只是免费使用了一下).费用计算公式(空间和流量),请求次数是免费.可免费试用7天.开源的程序(DZ,PW,WP)都有插件,也可以直接使用FTP,对于技术上要求不是太高就可以使用.七

Windows环境下用C#编程将文件上传至阿里云OSS笔记

本系列文章由ex_net(张建波)编写,转载请注明出处. http://blog.csdn.net/ex_net/article/details/24962567 作者:张建波 邮箱: [email protected]  欢迎来信交流! 第1步: 下载阿里云OSS的SDK包,由于笔者的环境是PHP服务,所以下载的是PHP的SDK包 http://help.aliyun.com/view/13438816.html 第2步:将代码整合进你的网站或服务中. 第3步:配置OSS访问接口 (1)找到c

jeesz分布式架构集成阿里云oss存储

1. 服务接口定义 /** * 文件上传  1:头像 2:显示图片 3:个人封面  :4:基础图片 * @param request * @param response * @param uid 用户id * @param userType 文件上传  1:头像 2:显示图片 3:个人封面  :4:基础图片 0:视频 * @param files 上传的文件对象 * @return * @throws Exception */ @RequestMapping(value = "/upload/b

发布阿里云OSS for phpcmsV9整合教程

说明:这个算不上是插件,因为没有安装包,需要手工修改代码. 还有一点就是后台发布文章时上传的附件还是会保存在你的服务器上,基于以下原因: 1.个人的需求是前台页面需要使用thumb函数生成多个缩略图大小,thumb函数是不支持远程图片的(保存在OSS上就变远程图片了),即使修改为支持远程图片,也需要将远程图片先保存到本地,这样速度会非常慢,是非常非常: 2.做备份的需要,这点你懂得,某天OSS上的附件没有了就悲剧了,所以使用这个OSS for phpcmsV9需要服务器有一定的空间. 下面是整合

Aliyun OSS Nginx proxy module(阿里云OSS Nginx 签名代理模块)

1.此文章主要介绍内容 本文主要介绍怎样利用Nginx lua 实现将阿里云OSS存储空间做到同本地磁盘一样使用.核心是利用Nginx lua 对OSS请求进行签名并利用内部跳转将全部訪问本地Nginx的请求加上OSS 签名转发给OSS,实现本地Nginx无缝衔接阿里云OSS,存储空间无限扩展,存储成本无限下降,数据安全%99.99-- . 2.本篇文章使用到的一些工具技术及怎样学习和获取 1.lua 本文用到的都是一些主要的lua,基本上花半小时阅读下lua的语法就能够轻松理解本文内容 2.N