使用PyImgur上传上传的图像,而不保存到临时文件

时间:2015-09-04 18:11:53

标签: python flask imgur

我想上传到Imgur上传到我的Flask应用的图片。目前,我将上传的文件保存到临时文件,然后将文件名传递给upload_image。有没有更简单的方法来避免临时文件?

def upload_image():
    file = request.files['file']
    filename = secure_filename(file.filename)
    target_path = os.path.join(UPLOAD_FOLDER, filename)
    file.save(target_path)
    im = pyimgur.Imgur(IMGUR_CLIENT_ID)
    uploaded_image = im.upload_image(target_path, title=filename)
    os.remove(target_path)
    return uploaded_image.link

1 个答案:

答案 0 :(得分:2)

PyImgur only supports passing a filenameupload_image。如果它支持传递文件对象,则可以将上传的文件直接传递给它。

您可以使用PyImgur客户端,但自己构建请求。除了直接使用上传的文件外,只需执行upload_image内部的操作。

from base64 import b64encode

data = b64encode(request.files['file'].read())
client = pyimgur.Imgur(IMGUR_CLIENT_ID)
r = client._send_request('https://api.imgur.com/3/image', method='POST', params={'image': data})
return r['link']
相关问题