阿里云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
- Restful安全认证及权限的解决方案
- Java并发容器大合集
- Java并发编程的艺术(九)——批量获取多条线程的执行结果
- web.xml中load-on-startup的作用
- Java并发编程的艺术(七)——Executors
- Java并发编程的艺术(八)——闭锁、同步屏障、信号量详解
- PowerDesigner使用教程|使用方法
- Java并发编程的艺术(一)——并发编程需要注意的问题
- 梯度下降法快速教程 | 第三章:学习率衰减因子(decay)的原理与Python实现
- Java并发编程的艺术(三)——volatile
- java学习手册-java 新手入门必看的30个题
- Java并发编程的艺术(五)——中断
- 简易的深度学习框架Keras代码解析与应用
- Java并发编程的艺术(六)——线程间的通信
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法