1,阿里雲api的簽名生成及使用

2022-07-30 01:15:15 字數 3879 閱讀 4164

import

os, sys

import

hashlib

import

hmac

import

base64

import

urllib

import

time

import

uuid

import

requests

defget_iso8601_time():

'''返回iso8601格式的時間

'''time_zone = "

gmt"

format_iso8601 = "

%y-%m-%dt%h:%m:%sz

"return

time.strftime(format_iso8601, time.gmtime())

defget_uuid():

'''返回uuid

'''return

str(uuid.uuid4())

defget_parameters(user_param, action, accesskeyid, version):

'''拼接引數字典

user_param:

action操作例如:createloadbalancer

accesskeyid:access key id

version: 介面的版本

'''把公共引數拼接成字串

'''param_str = ''

for (k, v) in

sorted(parameters.items()):

param_str += "

&" + urllib.quote(k, safe='') + "

=" + urllib.quote(v, safe=''

) param_str = param_str[1:]

return

param_str

defget_stringtosign(parameters, param_str):

'''拼接生成簽名的字串

'''構建簽名

'''h =hmac.new(accesskeysecret, stringtosign, hashlib.sha1)

signature =base64.encodestring(h.digest()).strip()

return

signature

defbuild_request(server_url, param_str, signature, accesskeysecret):

'''拼接url並進行請求

'''signature = "

signature=

" +urllib.quote(signature)

param = param_str + "

&" +signature

request_url = server_url +param

s =requests.get(request_url)

print

s.content

print

s

return

sdef

get_regions(server_url, action, user_param, accesskeysecret, accesskeyid, version):

'''對請求進行模組

server_url: slb.aliyun.com

action = 'describeregions'

accesskeysecret, accesskeyid:也就是ak

user_param =

version:例如slb的版本是2014-05-15,每個服務都不相同

阿里雲認證簽名生成

呼叫阿里雲介面,需要在headers中新增簽名 x ca signature欄位 以whois查詢介面為例 阿里雲生成認證字串文件 以nodejs為例 const domainname your domain name const apiurl const headers path 除根路徑以外的其...

阿里雲API閘道器使用教程

api 閘道器 api gateway 提供api託管服務,涵蓋api發布 管理 運維 售賣的全生命週期管理。輔助使用者簡單 快速 低成本 低風險的實現微服務聚合 前後端分離 系統整合,向合作夥伴 開發者開放功能和資料。關於api閘道器的詳細內容 阿里雲api閘道器使用教程 更多精品課程 7天玩轉雲...

阿里雲API閘道器使用教程

api 閘道器 api gateway 提供高效能 高可用的 api 託管服務,幫助使用者對外開放其部署在 ecs 容器服務等阿里雲產品上的應用,提供完整的 api 發布 管理 維護生命週期管理。使用者只需進行簡單的操作,即可快速 低成本 低風險地開放資料或服務。輔助使用者簡單 快速 低成本 低風險...