I'm trying to create thumbnails of images that are being uploaded to my Amazon S3 store. The image upload in itself is working fine, but for some reason the gm(readStream, fileObj.name()).resize('50','50').stream().pipe(writeStream) call is never made because gm.isAvailable returns undefined. However, when I call it directly from the meteor shell environment I get "true". What am I doing wrong?
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
When I start my app or upload a picture I get "thumbnail transform", "undefined" and "That didn't work"...
I'm running on Win 10, installed GraphicsMagick 1.3.21 and I'm using the cfs:graphicsmagick package.
Does anyone have any thoughts?
Try gm.isAvailable
with a lower case i
.