这是我目前用于将图像发送到API的内容:
import requests
response = requests.post("http://someAPI",
auth=(username, password),
files={'imgFile': open(filepath, 'rb')}
)
它适用于本地文件,但我也希望能够从URL发送图像。我知道如何通过保存文件,然后将其作为本地文件打开,将其发送到API然后将其删除来实现此目的。
有没有办法这样做而无需保存和删除文件?
答案 0 :(得分:0)
您可以使用StringIO
。 StringIO是文件兼容的对象,具有打开,搜索,读取,写入。因此,您可以将数据加载到该服务并从中提供服务,而无需将文件写入磁盘。我通常使用这个approch来创建CAPTCH。
import StringIO
import requests
# Imagine you read the image file in image as base64 encoded...
buff = StringIO.StringIO()
buff.write(image.decode('base64'))
buff.seek(0)
response = requests.post("http://someAPI",
auth=(username, password),
files={'imgFile': buff}
)