将文件上传到七牛云

下载七牛云SDK

pip install qiniu

配置上传密钥,上传空间
定义上传文件/二进制文件的函数

import qiniu


AUTH = qiniu.Auth(
    '2tnO1EafA4nxxccvdMaTERpSrSXpFmvccPCuBE4r',
    '-KreVA7Wi0Gsd6RfCgWEu76rgzcikr_q96y_-UAY'
)
BUCKET_NAME = 'yaoyao123'


# 普通文件上传函数(大文件)
def upload_file_to_qiniu(key, filepath):
    token = AUTH.upload_token(BUCKET_NAME, key)
    return qiniu.put_file(token, key, filepath)

# 二进制文件上传函数(放入内存中的小文件<2.5M)
def upload_stream_to_qiniu(key, stream, size):
    token = AUTH.upload_token(BUCKET_NAME, key)
    return qiniu.put_stream(token, key, stream, None, size)

调用上传文件到七牛云的函数

from polls.utils import upload_stream_to_qiniu


@csrf_exempt
def upload(request):
    photo = request.FILES.get('photo')
    # 通过os.path.splitext将文件拆分成文件名和拓展名
    _, ext = os.path.splitext(photo.name)
    filename = f'{uuid.uuid1().hex}{ext}'
    # 放到线程池中运行,还没等到程序运行,变量已被释放。这里将文件拷贝避免这种问题。
    POOL.submit(upload_stream_to_qiniu, filename, copy.copy(photo.file), photo.size)
    return redirect('/static/html/upload.html')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值