zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    Qt 实现遥感图像显示时的连动效果
    Qt 调试时的错误——Debug Assertion Failed!
    从零开始--系统深入学习IOS(使用Swift---带链接)
    在别人客户端上修改,来匹配测试自己的服务端
    趣拍SDK接入问题Android
    持久化数据
    实现编辑和删除
    实现导航
    创建一个Table View
    定义你的数据模型
  • 原文地址:https://www.cnblogs.com/wwr3569/p/13752876.html
Copyright © 2011-2022 走看看