从流星中的外部位置获取图像

时间:2015-06-19 07:18:48

标签: javascript meteor

我正在制作一个流星应用程序,允许用户上传图像。图像上传存储在我本地系统的“/ tmp / images /”目录中。

如何显示上述目录中的图像。 到目前为止,我已经看到只在流星的“公共”目录中显示图像。但是如果我开始在“公共”中添加用户上传的图像,那么每次用户上传图像时,服务器都会刷新。

所以我基本上想要显示来自“/ tmp / images /”的图像。

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

我建议您使用gridFS存储图像:

  1. 您将能够存储大于16Mb的文件。
  2. 文件不会“触摸”您的服务器,它们会直接通过管道传输到您的数据库中。
  3. 您可以像集合一样处理它们,因此您可以根据需要允许/拒绝访问它们。
  4. meteor中设计的唯一存储静态资源的地方是public文件夹。你不应该试着把这些放在其他地方。

    如果您想尝试使用gridFS,可以使用file-collection package。设置快速简便。

    或者,正如@Marius Darila所建议的那样,你可以use Nginx to serve static content

    正如@Michel Floyd所回答,您也可以使用collectionFS,但引用file-collection package作者:

      

    简而言之,这就是差异:collectionFS是一辆法拉利,而且   文件收集是菲亚特。

         

    他们使用相同的东西做大致相同的事情   技术,但反映了不同的设计重点。文件收集   更简单,更不灵活;但如果它符合您的需求   你会发现它的运动部件少得多,而且可能很明显   使用和使用效率更高。

答案 1 :(得分:2)

您还应该查看CollectionFS。这将允许您根据需要使用不同的存储适配器,而无需更改代码。这是一个非常完善和强大的包。

答案 2 :(得分:0)

没有其他方法可以从项目文件夹外的其他目录中获取图像。这就是Meteor建立" public"我们的目录。路径" /"本身表示项目文件夹的开头。好吧,如果您将图像存储在亚马逊s3等位置,那么只需点击标签中的网址即可获取图像。

所以底线是你把你的图像放在公共文件夹中,或者将图像存储在一些外部位置,只需点击图像网址即可获取。

并且不用担心刷新,在生产模式下不会发生这种情况。这只发生在开发模式中。