parent
e7ae75acbf
commit
5eab62491f
@ -0,0 +1,79 @@ |
||||
import base64 |
||||
import calendar |
||||
import datetime |
||||
import hashlib |
||||
import hmac |
||||
import os |
||||
import random |
||||
import time |
||||
from urllib import parse |
||||
|
||||
import requests |
||||
|
||||
|
||||
def get_md5_01(file_path): |
||||
md5 = None |
||||
if os.path.isfile(file_path): |
||||
f = open(file_path, 'rb') |
||||
md5_obj = hashlib.md5() |
||||
md5_obj.update(f.read()) |
||||
hash_code = md5_obj.hexdigest() |
||||
f.close() |
||||
md5 = str(hash_code).lower() |
||||
return md5 |
||||
|
||||
|
||||
def createTransaction(HTTPMethod, filePath): |
||||
fileName = filePath.split('/')[-1] |
||||
|
||||
for Version in getBetweenDay('2017-01-01'): |
||||
print("Version={Version}".format(Version=Version)) |
||||
param = { |
||||
"Format": "JSON", |
||||
"Version": Version, |
||||
"AccessKeyId": "LTAIeS8aBuPBZxV2", |
||||
"SignatureMethod": "HMAC-SHA1", |
||||
"Timestamp": int(time.time()), |
||||
"SignatureVersion": "1.0", |
||||
"SignatureNonce": random.randint(0, 9), |
||||
"Action": "CreateTransaction", |
||||
"Ext": fileName[-fileName[::-1].index('.'):], |
||||
"Md5": get_md5_01(filePath), |
||||
"Size": os.path.getsize(filePath) |
||||
} |
||||
AccessKeySecret = b'hyPeTaDQBQs6jetYcqY0BUdpacXTH3' |
||||
canonicalQueryString = '' |
||||
for i in sorted(param.items(), key=lambda d: d[0]): |
||||
canonicalQueryString += '&' + i[0] + parse.quote('=' + str(i[1])) |
||||
# print(canonicalQueryString[1:]) |
||||
|
||||
strUrlEncoding = HTTPMethod + '&%2F&' + canonicalQueryString[1:] |
||||
print(strUrlEncoding) |
||||
stringToSign = base64.b64encode(hmac.new(AccessKeySecret, strUrlEncoding.encode('UTF-8'), 'sha1').digest()) |
||||
|
||||
server = 'https://cloudphoto.cn-shanghai.aliyuncs.com' |
||||
url = server + "?" + canonicalQueryString[1:] + '&Signature=' + stringToSign.decode('utf-8').replace('+','%20').replace('/','%2F').replace('=','%3D') |
||||
print(url) |
||||
result = requests.get(url) |
||||
|
||||
if result.status_code == 200: |
||||
break |
||||
else: |
||||
print(result.content) |
||||
time.sleep(1) |
||||
|
||||
|
||||
def getBetweenDay(begin_date): |
||||
date_list = [] |
||||
begin_date = datetime.datetime.strptime(begin_date, "%Y-%m-%d") |
||||
end_date = datetime.datetime.strptime(time.strftime('%Y-%m-%d', time.localtime(time.time())), "%Y-%m-%d") |
||||
while begin_date <= end_date: |
||||
date_str = begin_date.strftime("%Y-%m-%d") |
||||
date_list.append(date_str) |
||||
begin_date += datetime.timedelta(days=1) |
||||
return date_list |
||||
|
||||
|
||||
if __name__ == '__main__': |
||||
createTransaction("GET", "C:/Users/10295/Desktop/灵梦.png") |
||||
# print(getBetweenDay('2017-01-01')) |
Loading…
Reference in new issue