我在外部 URL 上有一个文件(只有运行着的 meteor 服务器才能访问)
http://192.168.9.39/account_5.pdf
我想在 meteor 中提供此服务,以便用户可以单击链接到例如http://server.meteor.com/temp/account_5.pdf
有什么办法可以做到这一点吗?也许将其直接流式传输给用户或将文件下载到 /public/temp
文件夹以便可以提供服务?我该怎么做?
我愿意接受任何建议,即使它耗尽了节点模块或其他东西
最佳答案
您正在运行自己的 Meteor 服务器,还是确实想部署到 *.meteor.com? (你说的是“server.meteor.com”,所以我想知道)。
从节点你可以使用http.get检索远程文件,然后使用 fs.writeFile将其保存到您的 temp/目录。
或者您可以像您建议的那样使用 http://www.catonmat.net/http-proxy-in-nodejs/ 之类的内容进行流式传输
如果您正在运行自己的服务器,最简单的事情可能就是将此代码打包到一个小的 npm 模块中。 Node 的 require
暴露给 __meteor_bootstrap__.require
中的 Meteor 代码,因此要触发获取远程文件,您可以执行类似 __meteor_bootstrap__.require('my-npm- module').fetchFileToTemp(name)
.
对于流选项,__meteor_bootstrap__.app
是 Meteor 的连接服务器,您可以通过它附加您自己的请求处理程序
__meteor_bootstrap__.app(function (req, res, next) { ... });
以连接中间件的通常方式。
关于Meteor 代理文件到浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14423584/