OSS簽名Header實現Demo(Python)

概述

OSS的集成上傳和下載提供了SDK可以直接使用,但實際使用中一些用戶受限環境或者設備限制需要使用api方式來實現上傳和下載,本文以PutObject接口爲例,提供了python實現的demo。
注:建議優先使用OSS提供SDK,本文提供的只是簽名實現上傳demo,實際使用中需要結合業務來進行改動代碼

詳細信息

PutObject實現Demo(測試環境python2.7):

# -*- coding: utf-8 -*-
import base64
import hmac
import sha
import urllib2
from datetime import datetime


accesskey = '您的accesskey';
accesskeysecret = '您的AccesskeySecret'
endpoint='oss-cn-hangzhou.aliyuncs.com'
bucket='您的bucket名稱'
#您的上傳文件路徑
object='mytest/test.png'
GMT_FORMAT = '%a, %d %b %Y %H:%M:%S GMT'


time = datetime.utcnow().strftime(GMT_FORMAT)
print(time)
signature = hmac.new(accesskeysecret,
"PUT\n\nimage/png\n"+time+"\n"+"/"+bucket+"/"+object,sha)
Signature = base64.b64encode(signature.digest())
print("Signature: %s" % Signature)
opener = urllib2.build_opener(urllib2.HTTPHandler)
with open("/Users/wanghe/Documents/20190717101549.png") as f:
data=f.read()
request = urllib2.Request("http://"+bucket+"."+endpoint+"/"+object, data=data)
request.add_header("Authorization", "OSS "+accesskey+":"+Signature)
request.add_header("Content-Type", "image/png")
request.add_header("Date", time)
request.get_method = lambda:"PUT"
url = opener.open(request)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章