python 七牛云 上传二进制图片存储

 1 from qiniu import Auth, put_file, etag, put_data
 2 import qiniu.config
 3 from flask import current_app
 4 
 5 
 6 def upload_img(data):
 7     """
 8     上传二进制数据到七牛云
 9     :param data: 二进制数据
10     :return:
11     """
12 
13     # 需要填写你的 Access Key 和 Secret Key
14     access_key = current_app.config["QINIU_ACCESS_KEY"]
15     secret_key = current_app.config["QINIU_SECRET_KEY"]
16 
17     # 构建鉴权对象
18     q = Auth(access_key, secret_key)
19 
20     # 要上传的空间名称
21     bucket_name = current_app.config["QINIU_BUCKET_NAME"]
22 
23     # 上传后保存的文件名
24     # 如果不指定保存的文件名称,七牛云会自动生成一个唯一的图片名称
25     # 哈希值
26     key = None
27 
28     # 生成上传 Token,可以指定过期时间等 3600单位是s
29     token = q.upload_token(bucket_name, key, 3600*24)
30 
31     # 要上传文件的本地路径
32     # 将图片二进制数据上传到七牛云
33     ret, info = put_data(token, key, data)
34 
35     print(ret)
36     print(info)
37     if info.status_code == 200:
38         # 上传图片成功
39         # 拼接完整url地址
40         full_url = current_app.config["QINIU_DOMAIN"] + ret["key"]
41         return full_url
42     else:
43         # 封装好的工具类异常需要抛出,不能私自解决异常 否则外界调用遇到异常没法解决
44         raise Exception(info.exception)
45 
46 
47 if __name__ == '__main__':
48     # with app.app_context(): #若要测试就打开这一行
49     with open('C:/Users/Administrator/Desktop/2.0.jpg', 'rb') as f:
50         data = f.read()
51         full_url = upload_img(data)
52         print(full_url)
原文地址:https://www.cnblogs.com/wwr3569/p/13752876.html