2013-01-20 108 views
2

我有一個外部URL文件(只在服務器流星就可以訪問運行)流星代理文件瀏覽器

http://192.168.9.39/account_5.pdf 

我想在流星服務於這件事,以便用戶可以點擊鏈接到例如http://server.meteor.com/temp/account_5.pdf

有沒有辦法我可以做到這一點?也許可以直接將它流式傳輸給用戶,或將文件下載到/public/temp文件夾中,以便將其提供給服務器?我將如何做到這一點?

我接受任何建議,即使如果您在/公用文件夾下降PDF和部署使用了一個節點模塊或東西

回答

2

你正在運行你自己的Meteor服務器,還是你真的想部署到* .meteor.com? (你說「server.meteor.com」,所以我想知道)。

從節點可以使用http.get來檢索遠程文件,然後使用fs.writeFile將其保存到您的temp /目錄。

還是喜歡你的建議如果你正在運行自己的服務器,可能是最簡單的事情將是一個小的NPM模塊中封裝了該代碼使用類似http://www.catonmat.net/http-proxy-in-nodejs/

你可以流呢。節點的require暴露在__meteor_bootstrap__.require的Meteor代碼中,因此要觸發獲取遠程文件,您可以執行類似__meteor_bootstrap__.require('my-npm-module').fetchFileToTemp(name)的操作。

對於流媒體選項,__meteor_bootstrap__.app是流星的連接服務器,您可以在連接中間件通常的方式通過

__meteor_bootstrap__.app(function (req, res, next) { ... }); 

附上自己的請求處理程序。

1

,用戶只需點擊http://server.meteor.com/account_5.pdf訪問PDF文件。

這是你所期待的嗎?希望這有幫助。

+0

我必須首先從遠程文件夾下載到公用文件夾。我不太清楚如何用流星來做到這一點,我不認爲它有文件處理嗎?該文件是由遠程機器生成的,所以我不能手動把每個人。 – Akshat

+0

嗯...我現在明白了... – TimDog

0

這是一個有點冒失,但你可以做一個路由(與流星路由器)迴應/temp/*,並在加載遠程URL的頁面中放置一個iframe。它不會很優雅,但它會起作用!萬一你需要快速完成這項工作。

或者你可以做一個跨來源的XHR請求,並以這種方式獲取文件,這可能更流星。但我不得不看那一個。 ;-)

+0

我喜歡這個想法,但我不太清楚如何做到流星,也許我可以寫一個包來幫助。軟件包是否可以訪問文件句柄之類的東西(例如,它可以在meteor.com上使用)? – Akshat