2013-01-20 46 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