GraphicsMagick 未被调用
GraphicsMagick not getting called
我正在尝试为上传到我的 Amazon S3 商店的图像创建缩略图。图片上传本身工作正常,但由于某种原因,从未进行 gm(readStream, fileObj.name()).resize('50','50').stream().pipe(writeStream) 调用因为 gm.isAvailable returns 未定义。但是,当我直接从流星 shell 环境调用它时,我得到 "true"。我做错了什么?
if (Meteor.isServer) {
var imageStore = new FS.Store.S3("images", {
region: "eu-west-1",
accessKeyId: (Meteor.isServer && !process.env.AWS_ACCESS_KEY_ID ? Meteor.settings.AWSAccessKeyId : null),
secretAccessKey: (Meteor.isServer && !process.env.AWS_SECRET_ACCESS_KEY ? Meteor.settings.AWSSecretAccessKey : null),
bucket: Meteor.isServer && process.env.AWS_S3_BUCKET || Meteor.settings.AWSBucket,
folder: "images"
});
var thumbStore = new FS.Store.S3("thumbnails", {
region: "eu-west-1",
accessKeyId: (Meteor.isServer && !process.env.AWS_ACCESS_KEY_ID ? Meteor.settings.AWSAccessKeyId : null),
secretAccessKey: (Meteor.isServer && !process.env.AWS_SECRET_ACCESS_KEY ? Meteor.settings.AWSSecretAccessKey : null),
bucket: Meteor.isServer && process.env.AWS_S3_BUCKET || Meteor.settings.AWSBucket,
folder: "thumbnails",
transformWrite: function(fileObj, readStream, writeStream) {
// transform image into 50 x 50 thumbnail
console.log("thumbnail transform");
console.log(gm.IsAvailable);
if (gm.IsAvailable) {
return gm(readStream, fileObj.name()).resize('50','50').stream().pipe(writeStream);
} else {
console.log("That didn't work");
}
}
});
Images = new FS.Collection("Images", {
stores: [
thumbStore,
imageStore
],
filter: {
allow: {
contentTypes: ['image/*']
}
}
});
}
// end server
if (Meteor.isClient) {
var imageStore = new FS.Store.S3("images");
var thumbStore = new FS.Store.S3("thumbnails");
Images = new FS.Collection("Images", {
stores: [
thumbStore,
imageStore
],
filter: {
allow: {
contentTypes: ['image/*']
}
}
});
}
// end client
当我启动我的应用程序或上传图片时,我得到 "thumbnail transform"、"undefined" 和 "That didn't work"...
我 运行 在 Win 10 上,安装了 GraphicsMagick 1.3.21,我正在使用 cfs:graphicsmagick 软件包。
有没有人有什么想法?
尝试 gm.isAvailable
小写 i
。
我正在尝试为上传到我的 Amazon S3 商店的图像创建缩略图。图片上传本身工作正常,但由于某种原因,从未进行 gm(readStream, fileObj.name()).resize('50','50').stream().pipe(writeStream) 调用因为 gm.isAvailable returns 未定义。但是,当我直接从流星 shell 环境调用它时,我得到 "true"。我做错了什么?
if (Meteor.isServer) {
var imageStore = new FS.Store.S3("images", {
region: "eu-west-1",
accessKeyId: (Meteor.isServer && !process.env.AWS_ACCESS_KEY_ID ? Meteor.settings.AWSAccessKeyId : null),
secretAccessKey: (Meteor.isServer && !process.env.AWS_SECRET_ACCESS_KEY ? Meteor.settings.AWSSecretAccessKey : null),
bucket: Meteor.isServer && process.env.AWS_S3_BUCKET || Meteor.settings.AWSBucket,
folder: "images"
});
var thumbStore = new FS.Store.S3("thumbnails", {
region: "eu-west-1",
accessKeyId: (Meteor.isServer && !process.env.AWS_ACCESS_KEY_ID ? Meteor.settings.AWSAccessKeyId : null),
secretAccessKey: (Meteor.isServer && !process.env.AWS_SECRET_ACCESS_KEY ? Meteor.settings.AWSSecretAccessKey : null),
bucket: Meteor.isServer && process.env.AWS_S3_BUCKET || Meteor.settings.AWSBucket,
folder: "thumbnails",
transformWrite: function(fileObj, readStream, writeStream) {
// transform image into 50 x 50 thumbnail
console.log("thumbnail transform");
console.log(gm.IsAvailable);
if (gm.IsAvailable) {
return gm(readStream, fileObj.name()).resize('50','50').stream().pipe(writeStream);
} else {
console.log("That didn't work");
}
}
});
Images = new FS.Collection("Images", {
stores: [
thumbStore,
imageStore
],
filter: {
allow: {
contentTypes: ['image/*']
}
}
});
}
// end server
if (Meteor.isClient) {
var imageStore = new FS.Store.S3("images");
var thumbStore = new FS.Store.S3("thumbnails");
Images = new FS.Collection("Images", {
stores: [
thumbStore,
imageStore
],
filter: {
allow: {
contentTypes: ['image/*']
}
}
});
}
// end client
当我启动我的应用程序或上传图片时,我得到 "thumbnail transform"、"undefined" 和 "That didn't work"...
我 运行 在 Win 10 上,安装了 GraphicsMagick 1.3.21,我正在使用 cfs:graphicsmagick 软件包。
有没有人有什么想法?
尝试 gm.isAvailable
小写 i
。