post Object 上传oss


def get_upload_token(save_name=''):

expire_time = int(time.time()) + OSSConfig.upload_expire_time
policy_dict = {
"conditions": [
# ["eq", "$key", save_name],
# ["starts-with", "$key", save_name],
# 10G = 10 * 1024 * 1024 * 1024 = 10737418240
["content-length-range", 1, 10737418240]
],
"expiration": get_iso_8601(expire_time)
}

upload_dir = ''
if save_name != '':
policy_dict['conditions'].append(["eq", "$key", save_name])

policy = json.dumps(policy_dict).strip()
policy_encode = base64.b64encode(policy.encode("utf-8"))

h = hmac.new(OSSConfig.access_key_secret.encode("utf-8"), policy_encode, sha)
sign_result = base64.encodebytes(h.digest()).strip()

token_dict: dict = {
"accessid": OSSConfig.access_key_id,
"host": commonConf.media_url,
"policy": policy_encode.decode('utf-8'),
"signature": sign_result.decode('utf-8'),
"expire": expire_time,
"dir": upload_dir,
"name": save_name
}
return token_dict


hmacsha256加密16进制

def get_sign(key, data):
data = data.encode('utf-8')
return hmac.new(key.encode('utf-8'), data, digestmod=sha256).hexdigest().upper()

posted @ 2022-02-21 10:02  wyz_1  阅读(95)  评论(0编辑  收藏  举报