阿里云oss对象上传文件

时间:2021-08-12
本文章向大家介绍阿里云oss对象上传文件,主要包括阿里云oss对象上传文件使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
# -*- coding: utf-8 -*-
import base64
import datetime
import hmac
import json
import time
from hashlib import sha1 as sha


def get_iso_8601(expire, utc=8):
gmt = datetime.datetime.utcfromtimestamp(expire + utc * 60 * 60).isoformat()
gmt += "Z"
return gmt


access_key_id = "your access_key_id "
access_key_secret = "your access_key_secret "
# 填写Bucket名称。
bucket_name = '
填写Bucket名称'


def get_token():
save_name = '文件名称'
upload_dir = "upload"
expire_time = int(time.time()) + 600
policy_dict = {
"conditions": [
# ["eq", "$bucket", "md-hz"],
# ["starts-with", "$key", upload_dir]
# 10G = 10 * 1024 * 1024 * 1024 = 10737418240
# ["content-length-range", 5, 10737418240]
["content-length-range", 1, 10737418240]
],
"expiration": get_iso_8601(expire_time)
}

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

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

token_dict: dict = {
"OSSAccessKeyId": access_key_id,
"policy": policy_encode.decode('utf-8'),
"signature": sign_result.decode('utf-8'),
"expire": str(expire_time),
"key": f'{upload_dir}/{save_name}'
}
return token_dict

原文地址:https://www.cnblogs.com/yz-w/p/15132084.html