2012-08-12 24 views
-2

我想下載文件到我的服務器,並通過減號或Dropbox API自動將它發送到在線存儲(減號或Dropbox),而不將下載的文件保存在我的服務器中。所以,它像流式傳輸或管道HTTP連接。現在我使用minus.com API,但它需要文件對象或本地文件作爲參數。我無法弄清楚如何將http響應轉換爲文件對象。python:下載文件並實時發送到在線存儲

可以這樣做嗎?如果可能的話,如何?

概念:

FILE_ON_ANOTHER_SERVER ----(HTTP)---> MY_SERVER ----(HTTP)----> ONLINE_STORAGE

感謝

+0

Downvote零動機 – 2012-08-13 04:16:08

+0

對不起已故的答覆,但即時通訊與命名管道(FIFO)已經嘗試和叉的過程,所以孩子下載文件,而父上傳數據,但即時通訊GET錯誤信息。我還在試圖 – Alvin 2012-08-13 09:26:56

回答

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) 
0

urllib2.urlopen(url)將返回一個類似文件的對象。你可以直接將它傳遞給你的減號API嗎?看到urllib2的文檔在 http://docs.python.org/library/urllib2

+0

IM已經開始嘗試的是: 進口的urllib2 F = urllib2.urlopen(URL) minfile = remote.new( 'example.jpg',F) 但是,它也失敗了。 我從http://pypi.python.org/pypi/minus/獲取減庫並將其修改爲使用海報庫 – Alvin 2012-08-17 09:11:02