希望能支持tempfile.TemporaryFile或者直接上传二进制数据
ramwin opened this issue · 2 comments
ramwin commented
如题。
场景如下: 公司后台用于小程序开发。用户需要生成自己的海报。
调用小程序接口获得二维码,使用PIL处理后得到了图片文件。目前每次都先在服务器保存,然后用put_file上传。上传完毕后再删除图片文件。
如果qiniu能支持直接上传TemporaryFile或者二进制数据,就不需要这么麻烦了。
forrest-mao commented
内部issue TS-998
yangjunren commented
您好
您使用 https://github.com/yangjunren/python-sdk/blob/master/qiniu/services/storage/uploader.py 这个文件中的 put_data 方法就可以上传二进制数据呢。
该方法使用示例可以参考这个demo
from qiniu import Auth, put_data
# 填写公私钥
access_key = '公钥'
secret_key = '私钥'
# 要上传的空间
bucket_name = ""
# 构建鉴权对象
q = Auth(access_key, secret_key)
key = "文件名"
def image2base64(localfile):
with open(localfile, 'rb') as f: # 以二进制读取图片
data = f.read()
filename = localfile.split("/")[-1]
return filename, data
# 要上传的文件路径
localfile = ""
filename, data = image2base64(localfile)
# 生成上传token,可以指定过期时间
token = q.upload_token(bucket_name, key, 3600)
ret, info = put_data(token, key, data)
print(info)
print(token)