Python3生成騰訊雲cos的簽名sign

這兩天在折騰有關騰訊雲的對象存儲COS功能,之前用java語言寫過,下載了相關的SDK,這次開發語言變爲了python,遇到從bucket桶中下載私有讀寫文件的簽名問題,一般的文件下載鏈接格式如下:
https://桶名-APP_ID.cos.所屬區.myqcloud.com/test.txt?sign=XXXX
前面路徑好說,關鍵是生成簽名問題,下面便是用python生成簽名的代碼:

#!/usr/local/bin/python3
# coding=utf-8

import time
import random
import hmac
import hashlib
import base64

SecretId = 'XXXXXXXXXXXXXXXXXXX'
SecretKey = 'XXXXXXXXXXXXXXXXX'
Bucket = 'XXXXXX'
AppId = '125xxxxx06'
TimeStamp = int(time.time())
ExpireTime = TimeStamp + 86400 * 90
Random = random.randint(0, 100000)
Original = "a="+AppId+"&b="+Bucket+"&k="+SecretId+"&e="+str(ExpireTime)+"&t="+str(TimeStamp)+"&r="+str(Random)+"&f="

Hmac = hmac.new(bytes(SecretKey, 'utf-8'), bytes(Original, 'utf-8'), hashlib.sha1)
Sha1 = Hmac.digest()
Signature = bytes(Sha1) + bytes(Original, 'utf-8')
Signature2 = base64.b64encode(Signature)
-- 最後生成的sign如下
sign = str(Signature2, 'UTF-8')
print("Original: ", Original)
print("HMAC-SHA1: ", Sha1)
print("Signature before BASE64: ", Signature)
print("Signature after BASE64: ", sign)

以上希望對大家有用~

生成邏輯及簽名工具請參考官方文檔:

簽名工具

簽名算法

發佈了29 篇原創文章 · 獲贊 13 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章