大家有使用api進(jìn)行站點(diǎn)緩存清理的嗎 我使用python3 清理緩存一直報(bào)Bad signature:sign error! sign or key NG:X-Auth-Access-Key 錯(cuò)誤
答:簽名錯(cuò)誤
api_url = ‘https://api.su.baidu.com/%s’
#?X-Auth-Access-Key
access_key?=?”
#?X-Auth-Signature-Method
secret_key?=?”
#?X-Auth-Nonce
ran_str?=?str(”.join(random.sample(string.ascii_letters?+?string.digits,?32)))
def?build_sign(secret_key,?params):
”’通過(guò)HMAC-SHA1構(gòu)造簽名串”’
”’
Args:
secret_key:?HMAC?–?SHA1所使用的key
params:?待簽名的參數(shù)dict
”’
try:
ks?=?list(params.keys())
ks.sort()
base_str?=?‘&’.join([‘%s=%s’?%?(k,?str(params[k]))?for?k?in?ks])
return?base64.b64encode(hmac.new(bytes(secret_key,?‘utf-8’),?bytes(base_str,?‘utf-8’),?hashlib.sha1).digest())
except?Exception?as?e:
import?traceback
print(traceback.format_exc())
return?e
def?build_headers(access_key,?secret_key,?path,?get_params={},?post_params={}):
“””
根據(jù)請(qǐng)求參數(shù)構(gòu)建包含鑒權(quán)參數(shù)的請(qǐng)求Header
Args:
access_key:?ak
secret_key:?sk
get_params:?業(yè)務(wù)相關(guān)的GET參數(shù)
post_params:?業(yè)務(wù)相關(guān)的POST參數(shù)
view_params:?url中的restful參數(shù)
Returns:
params:?添加了鑒權(quán)相關(guān)參數(shù),并且簽名過(guò)的參數(shù)
“””
headers?=?{‘X-Auth-Access-Key’:?access_key,?‘X-Auth-Timestamp’:?str(int(time.time())),
‘X-Auth-Signature-Method’:?‘HMAC-SHA1’,?‘X-Auth-Nonce’:?ran_str}
all_params?=?{}
all_params.update(get_params)
all_params.update(post_params)
all_params.update(headers)
all_params[‘X-Auth-Path-Info’]?=?path.strip(‘/’)
auth_sign?=?build_sign(secret_key,?all_params)
headers[‘X-Auth-Sign’]?=?auth_sign
return?headers
ak 和 sk 填上去
以上答案來(lái)自于百度云加速交流群@檸檬不萌有點(diǎn)酸同學(xué)回答。