0

我已经在 heroku 上部署了我的流星应用程序,并使用CollectionFS将图像文件上传到 Amazon S3。一切正常,直到我上传了几张图片,然后由于部署而不得不重新启动服务器。

我的转换代码:

transformWrite: function(fileObj, readStream, writeStream) {
    try {
      gm(readStream, fileObj.name()).resize(width, height, opts.resize).interlace(opts.interlace).stream().pipe(writeStream);
    } catch (error) {
      throw new Meteor.Error(error);
    }
  }

但是自从第一次重新启动以来,我一直无法重新启动服务器。这是我遇到的错误。

Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch.
Stopping process with SIGKILL
FS.Transform.createWriteStream transform function failed, Error:
Exception in queued task: TypeError: Cannot read property 'resize' of undefined
State changed from starting to crashed
Process exited with status 137

目前,我已经注释掉了所有的 collectionFS 代码,这有助于我恢复网站。该代码在本地运行良好,但是,heroku 部署不断失败。

4

1 回答 1

0

您的问题的关键是:TypeError: Cannot read property 'resize' of undefined.

在您的代码中查看:gm(readStream, fileObj.name()).resize(...)

换句话说,gm是未定义的,您可以放心地假设它graphicsmagick没有安装在您的 heroku 实例上。

尝试使用这个:https ://github.com/mcollina/heroku-buildpack-graphicsmagick

于 2015-12-23T22:40:11.467 回答