qiniu/python-sdk

希望能支持tempfile.TemporaryFile或者直接上传二进制数据

ramwin opened this issue · 2 comments

如题。
场景如下: 公司后台用于小程序开发。用户需要生成自己的海报。
调用小程序接口获得二维码,使用PIL处理后得到了图片文件。目前每次都先在服务器保存,然后用put_file上传。上传完毕后再删除图片文件。
如果qiniu能支持直接上传TemporaryFile或者二进制数据,就不需要这么麻烦了。

内部issue TS-998

您好
您使用 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)