python 阿里云签名

# -*- coding: utf-8 -*-
import uuid
from urllib import unquote,quote
import time, datetime
from hashlib import sha1
import hmac
import base64
import urllib2
import urllib
import cookielib
import json
import httplib
import re
import requests
import pytz
#uuid='3D99B500-FED0-11E8-ADC2-43E0E4AD0724'
import uuid

uuid = uuid.uuid1()
tz = pytz.timezone('utc')
print tz
now = datetime.datetime.now(tz)
sdate = now.strftime("%Y-%m-%dT%H:%M:%SZ")
print sdate
sdate = quote(sdate)
print sdate
ydate = sdate
sdate = sdate.replace('%', '%25')
yunid='LTAIb9zHh7U0Us3e'
yunsecret='VbG8qFvhNEfWzilgNh0IAdeqXyhua2'


def _init(a,b):

    DescribeRegions=b
    regionid=a
    header='GET&%2F&'
    myurl="AccessKeyId=%s&Action=%s&Format=JSON&RegionId=%s&SignatureMethod=HMAC-SHA1&SignatureNonce=%s&SignatureVersion=1.0&TimeStamp=%s&Version=2014-05-26" % (yunid,DescribeRegions,regionid,uuid,ydate)
    print myurl
    myurl=quote(myurl)
    myurl=header+myurl
    myurl=myurl.encode('utf-8')
    print myurl
    my_sign = hmac.new('VbG8qFvhNEfWzilgNh0IAdeqXyhua2&', myurl, sha1).digest()
    my_sign = base64.b64encode(my_sign)
    print my_sign
    my_sign=my_sign.encode('utf-8')
    return my_sign
def get_url(a,b):
    #mysign=_init('region1','DescribeRegions')
    x=a
    y=b
    mysign = _init(x, y)
    print mysign
    head='http://ecs.aliyuncs.com/?'
    url='SignatureVersion=1.0&Format=JSON&TimeStamp=%s&RegionId=%s&AccessKeyId=%s&SignatureMethod=HMAC-SHA1&Version=2014-05-26&Signature=%s&Action=%s&SignatureNonce=%s'%(ydate,x,yunid,mysign,y,uuid)
    myurl=head+url
    print  myurl
    s=requests.session()
    print s.get(myurl).content

print get_url('region1','DescribeRegions')
print get_url('cn-hangzhou','DescribeInstances')

猜你喜欢

转载自blog.csdn.net/zhaoyangjian724/article/details/84994791