Download 如何服务或强制从meteor的不同目录下载文件到客户端浏览器

Download 如何服务或强制从meteor的不同目录下载文件到客户端浏览器,download,meteor,sendfile,Download,Meteor,Sendfile,用户来到我的站点并输入一些内容,我的站点生成一个文件作为输出 不幸的是,我无法将生成的文件放在公共目录中,因为你们现在都看到Meteor在每次更改公共文件夹内容时都会重新启动它 所以我生成的文件保存在.meteor/local/build/programs/server/files中 例如,我的document.pdf位于该目录中,我想向我的客户的浏览器提供/force/trigger文件下载,让他的浏览器下载这个document.pdf文件。一般来说,这样做不是一个好主意。这使得扩展应用程序变

用户来到我的站点并输入一些内容,我的站点生成一个文件作为输出

不幸的是,我无法将生成的文件放在公共目录中,因为你们现在都看到Meteor在每次更改公共文件夹内容时都会重新启动它

所以我生成的文件保存在.meteor/local/build/programs/server/files中


例如,我的document.pdf位于该目录中,我想向我的客户的浏览器提供/force/trigger文件下载,让他的浏览器下载这个document.pdf文件。

一般来说,这样做不是一个好主意。这使得扩展应用程序变得非常困难。Node也不擅长提供大块的静态文件

此外,如果您有两台服务器,则请求另一台服务器的数据的可能性很小(例如,如果您使用下载管理器)

我不确定,但我认为Meteor的实时代码重新加载在生产模式下(使用
Meteor deploy
Meteor bundle
时)不起作用/被关闭


最好的办法是将您的文件上传到S3,然后将用户重定向到那里的文件。

您还可以使用Iron路由器和服务器端路由创建动态文件下载。 见文件。然后将内容类型设置为application/pdf,并直接发回文件,而不将其保存到文件系统。如果你需要的话,你也可以把它保存在其他文件夹中,自己上桌

然后,以读入和输出文件为例,看一看这个答案:


由于这是一个服务器端路由,使用express和Iron Router,您不必处理任何与光纤相关的异步问题。

为什么很难扩展应用程序?我也不希望使用s3或任何其他第三方服务,我只想拥有我自己的文件/一切。现在我的解决方案是将它放在不同的根文件夹中,这样nginx就可以为它们服务,而不是meteor。@david当您有多个服务器时,这就成了一个问题。其他服务器将不具有这些文件。因此,您的负载平衡器可以从另一台服务器请求数据,而这台服务器并不是完全有意义的存储数据的服务器+1给你。