我想将文件下载到我的服务器并通过减号或Dropbox API自动将其发送到在线存储(减号或投递箱),而不将下载的文件保存在我的服务器中。所以,它像流式传输或管道HTTP连接。现在我使用minus.com API,但它需要文件对象或本地文件作为参数。我无法弄清楚如何将http响应转换为文件对象。
可以这样做吗?如果可能的话,怎么样?
概念:
FILE_ON_ANOTHER_SERVER ----(http)---> MY_SERVER ----(http)----> ONLINE_STORAGE
感谢
答案 0 :(得分:0)
您可以通过read()方法从响应中获取数据
response = urllib2.urlopen(request)
data = response.read()
变量数据具有来自响应的二进制数据。
现在,您可以创建一个StringIO对象,将对象作为文件处理数据。
import StringIO
datastream = StringIO.StringIO()
datastream.write(data)
datastream.seek(0)
#create dropbox client
client.put_file('/test', datastream)
答案 1 :(得分:0)
urllib2.urlopen(url)将返回类似文件的对象。你能直接把它传递给你的减号吗?请参阅urllib2文档 http://docs.python.org/library/urllib2