python:下载文件并实时发送到在线存储

时间:2012-08-12 20:57:48

标签: python http online-storage

我想将文件下载到我的服务器并通过减号或Dropbox API自动将其发送到在线存储(减号或投递箱),而不将下载的文件保存在我的服务器中。所以,它像流式传输或管道HTTP连接。现在我使用minus.com API,但它需要文件对象或本地文件作为参数。我无法弄清楚如何将http响应转换为文件对象。

可以这样做吗?如果可能的话,怎么样?

概念:

FILE_ON_ANOTHER_SERVER ----(http)---> MY_SERVER ----(http)----> ONLINE_STORAGE

感谢

2 个答案:

答案 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