2013-11-14 51 views
2

我正在尝试使用Imagemagick来操作用户上传的图像。现在我有一套简单的Imagemagick.convert []命令服务器端,可以在上传的图像上执行各种任务。我的问题来自Imagemagick,它需要将文件数据读入流星而不是来自url。我最终做的是将上传的文件写入Imagemagick能够操作映像的/ public文件夹中。但是,因为Imagemagick.convert命令列表(保存并写入/ public),应用程序不断刷新,分解进程并将其发送到无限刷新周期。我不认为资产是一个可行的解决方案,但我需要一些文件夹,我可以在流星中写入,不会通过刷新中断各种Imagemagick进程。我已经尝试了隐藏文件夹的.folder,但流星给了我一个错误:“你不能使用以点开头的名字”,“,因为这些名字是为系统保留的,请选择其他名称。有什么想法吗?Imagemagick与流星集成

+0

This [thread](http://stackoverflow.com/questions/19961296/meteor-write-file-on-meteor-com)表示,将'〜'加到文件名的末尾会防止重新启动文件更改。 – user728291

+0

你不应该在'public'目录中操作你的文件。用你的系统'tmp'代替,只写'public'最终结果。 –

+0

我也试过在最后使用'〜'。从我的流星服务器写入'tmp'的路径是什么? – Nate

回答

0

@Nate我写的(如其他人所说)通过使用临时目录解决这个问题,一个小例子应用程序:

https://github.com/ideaq/image-uploads

我的解决方案为您提供:

  • Easy图片上传在任何流星应用
  • 图像被重新调整大小以缩图移动优化和全尺寸原稿
  • 图像被上传到AWS S3CDN递送(可扩展性和速度)
  • A 缩略图的图像显示在用户而不刷新页面

Demo of the upload functionality

如果您发现了更好的流星图像上传方式,请分享!谢谢。 :-)

+0

我喜欢它!我正在使用imagemagick执行无法通过普通js完成的独特操作。但为了存储文件,我会推荐collectionFS。它由mongo的gridFS构建,并使用流星收集方案。实施简单而快速。检查出来(https://github.com/CollectionFS/Meteor-CollectionFS) – Nate

+0

我看了一下collectionFS。考虑到大多数MongoDB托管提供商的存储空间是*敲诈*,在Mongo中存储图像不是很经济。 https://www.mongohq.com/pricing因此,S3是大量数据的途径。并简单地将S3网址存储在数据库中。 – nelsonic

+0

这是非常真实的,需要谨慎地记住。我会检查出S3。这听起来像是一件好事。 – Nate