使用七牛云进行图片存储

0、注册并构建七牛云的存储空间(略)注册地址

1、安装

pip install qiniu

2、上传图片接口

from flask import current_app
from qiniu import Auth, put_file, etag, put_data
import qiniu.config


def upload_image(data):
    """
    上传二进制图片数据到七牛云
    :param data: bytes类型图片数据
    :return: 图片名称
    """
    # 需要填写你的 Access Key 和 Secret Key
    access_key = current_app.config["QINIU_ACCESS_KEY"]
    secret_key = current_app.config["QINIU_SECRET_KEY"]

    # 构建鉴权对象
    q = Auth(access_key, secret_key)

    # 要上传的空间
    bucket_name = current_app.config["QINIU_BUCKET_NAME"]

    # 上传后保存的文件名
    # 当图片名称为空,七牛云会根据图片数据通过hash函数生成一个唯一的图片名称 [防止数据重复上传]
    key = None

    # 生成上传 Token,可以指定过期时间等 1小时有效期
    # 坑:防止centOS时间超前过期(保证时间够长)
    token = q.upload_token(bucket_name, key, 36000000)

    # 方案1:要上传文件的本地路径
    # localfile = './sync/bbb.jpg'
    # ret, info = put_file(token, key, localfile)

    # 方案2:上传二进制图片数据
    ret, info = put_data(token, key, data)

    print(ret)
    print("**" * 10)
    print(info)
    if info.status_code == 200:
        # 上传图片成功
        # 返回图片名称
        return ret["key"]
    else:
        # 上传图片失败
        # 封装的工具类,如果遇到异常一定要抛出异常
        print('发生错误了!!!')
        raise info.exception


if __name__ == '__main__':
    with open("./1234.jpg", 'rb') as f:
        upload_image(f.read())
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值