Imagemagick 与 Meteor 集成

Posted

技术标签:

【中文标题】Imagemagick 与 Meteor 集成【英文标题】:Imagemagick integrated with Meteor 【发布时间】:2013-11-14 20:46:41 【问题描述】:

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

【问题讨论】:

这个thread 表示在文件名末尾添加~ 将防止文件更改重新启动。 您不应该在public 目录中操作您的文件。请改用您的系统tmp,并仅将最终结果写入public 我也试过在末尾使用'~'。从我的流星服务器写入“tmp”的路径是什么? 我在流星的服务器文件中添加了一个 tmp~ 文件夹。效果很好,但是有这样一个文件夹是个好习惯吗? 【参考方案1】:

@Nate 我编写了一个小示例应用程序,通过使用 临时目录 解决了这个问题(正如其他人所建议的那样):

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

我的解决方案给你:

轻松在任何 Meteor 应用中上传图片 图像大小调整为缩略图、移动优化和全尺寸原件 图像上传到 AWS S3 以进行 CDN 交付(可扩展性和速度) 图像的缩略图显示给用户无需刷新页面

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

【讨论】:

我喜欢!我正在使用 imagemagick 执行无法通过普通 js 完成的独特操作。但是对于存储文件,我建议使用 collectionFS。它建立在 mongo 的 gridFS 之上,并使用了流星收集方案。实施简单快捷。看看 (github.com/CollectionFS/Meteor-CollectionFS) 我看过collectionFS。考虑到大多数 MongoDB 托管服务提供商的存储空间是敲诈,在 Mongo 中存储图像并不是很经济。 mongohq.com/pricing 所以 S3 是处理大量数据的方法。并将 S3 url 存储在 DB 中。 这是非常正确的,并且要牢记在心。我会检查S3。这听起来是件好事。

以上是关于Imagemagick 与 Meteor 集成的主要内容,如果未能解决你的问题,请参考以下文章

与nodejs无法正常工作的imagemagick

将 Express.js-REST-Endpoint 与 Meteor 应用程序集成

ImageMagick还是GraphicsMagick?

php Imagemagick jpg 黑色背景

设置ImageMagick PNG图像背景颜色

如何让phpThumb识别并使用ImageMagick安装?