I'm using Meteor-CollectionFS and GraphicsMagick 1.3.22 to resize an image uploaded to Amazon S3. The image does not resize, it just appears in S3 full-sized. I also tried putting the resized images in a seperate store, but the image still appeared full-sized in the new store.
Here is my server/collections.js
FS.debug = true;
var imageStore = new FS.Store.S3("images", {
bucket: "meteor-s3-test-data",
accessKeyId: "XXX",
folder: "images",
secretAccessKey: "XXX",
transformWrite: createThumb
});
var createThumb = function(fileObj, readStream, writeStream) {
gm(readStream, fileObj.name()).resize('100', '100').stream().pipe(writeStream);
};
ProfileCollection = new Mongo.Collection('ProfileCollection');
PhotoCollection = new FS.Collection("PhotoCollection",
{
stores: [
imageStore,
],
filter: {
maxSize: 3145728,
allow: {
contentTypes: ['image/*'],
extensions: ['png', 'PNG', 'jpg', 'JPG', 'jpeg', 'JPEG']
}
}
});
and my client/collections.js
var imageStore = new FS.Store.S3("images");
ProfileCollection = new Mongo.Collection('ProfileCollection');
PhotoCollection = new FS.Collection("PhotoCollection",
{
stores: [
imageStore,
],
filter: {
maxSize: 3145728,
allow: {
contentTypes: ['image/*'],
extensions: ['png', 'PNG', 'jpg', 'JPG', 'jpeg', 'JPEG']
}
}
});
and my FS.debug log
FileWorker ADDED - calling deleteChunks for i5BrCN6rZwLoPuXy4
Meteor._wrapAsync has been renamed to Meteor.wrapAsync
TempStore is mounted on storage.gridfs
FileWorker ADDED - calling deleteChunks for 8BFzyhkoLyE4RGPES
FS.HTTP.unmount:
{}
Registered HTTP method URLs:
/cfs/files/:collectionName/:id/:filename
/cfs/files/:collectionName/:id
/cfs/files/:collectionName
token: eyJhdXRoVG9rZW4iOiJyYmx0cFd3YzUxVUlqd0JfaVhrck1RSVdmbE5wRmFKdXZFYjZvRXBWek5kIn0=
GET FILERECORD: 8BFzyhkoLyE4RGPES
Read file "me.jpg" bytes 0-14428/14429
createReadStream images
createReadStreamForFileKey images
Insertion in security = true
token: eyJhdXRoVG9rZW4iOiJyYmx0cFd3YzUxVUlqd0JfaVhrck1RSVdmbE5wRmFKdXZFYjZvRXBWek5kIn0=
HTTP PUT (update) handler received chunk: 0
GET FILERECORD: eLdMFShwMftTZAL4r
Insertion in security = true
createWriteStream _tempstore, internal: true
createWriteStreamForFileKey _tempstore
SA GridFS - DONE!
-----------STORED STREAM _tempstore
-----------CLOSE STREAM _tempstore
TempStore progress: Received 1 of 1 chunks for me.jpg
UPDATE: {"$set":{"uploadedAt":"2015-10-30T01:02:35.356Z"},"$unset":{"chunkCount":1,"chunkSum":1,"chunkSize":1}}
me.jpg was successfully uploaded. You are seeing this informational message because you enabled debugging and you have not defined any listeners for the "uploaded" event on the PhotoCollection collection.
FileWorker ADDED - calling saveCopy images for eLdMFShwMftTZAL4r
saving to store images
createWriteStream images, internal: false
createWriteStreamForFileKey images
FS.TempStore creating read stream for eLdMFShwMftTZAL4r
createReadStream _tempstore
createReadStreamForFileKey _tempstore
GRIDFS { _id: 5632c1ab10a4ad2c48853ad5, root: 'cfs_gridfs._tempstore' }
FileWorker CHANGED - calling saveCopy images for eLdMFShwMftTZAL4r
saving to store images
createWriteStream images, internal: false
createWriteStreamForFileKey images
FS.TempStore creating read stream for eLdMFShwMftTZAL4r
createReadStream _tempstore
createReadStreamForFileKey _tempstore
GRIDFS { _id: 5632c1ab10a4ad2c48853ad5, root: 'cfs_gridfs._tempstore' }
FileWorker REMOVED - removing all stored data for 8BFzyhkoLyE4RGPES
---SA REMOVE
-----------FINISH STREAM images
-----------FINISH STREAM images
-----------FINISH STREAM images
-----------FINISH STREAM images
SA S3 - DONE!!
-----------STORED STREAM images
-----------STORED STREAM images
SA images stored PhotoCollection/eLdMFShwMftTZAL4r-me.jpg
FS.File._saveChanges: images
UPDATE: {"$set":{"copies.images":{"name":"me.jpg","type":"image/jpeg","size":14429,"key":"PhotoCollection/eLdMFShwMftTZAL4r-me.jpg","updatedAt":"2015-10-30T01:02:35.790Z","createdAt":"2015-10-30T01:02:35.790Z"}}}
FS.File._saveChanges: _original
UPDATE: {"$set":{"original":{"name":"me.jpg","updatedAt":"2015-10-23T19:33:23.512Z","size":14429,"type":"image/jpeg"}}}
me.jpg was successfully saved to the images store. You are seeing this informational message because you enabled debugging and you have not defined any listeners for the "stored" event on the PhotoCollection collection.
FileWorker ADDED - calling deleteChunks for eLdMFShwMftTZAL4r
---SA REMOVE
SA S3 - DONE!!
-----------STORED STREAM images
-----------STORED STREAM images
SA images stored PhotoCollection/eLdMFShwMftTZAL4r-me.jpg
FS.File._saveChanges: images
UPDATE: {"$set":{"copies.images":{"name":"me.jpg","type":"image/jpeg","size":14429,"key":"PhotoCollection/eLdMFShwMftTZAL4r-me.jpg","updatedAt":"2015-10-30T01:02:35.884Z","createdAt":"2015-10-30T01:02:35.884Z"}}}
FS.File._saveChanges: _original
UPDATE: {"$set":{"original":{"name":"me.jpg","updatedAt":"2015-10-23T19:33:23.512Z","size":14429,"type":"image/jpeg"}}}
me.jpg was successfully saved to the images store. You are seeing this informational message because you enabled debugging and you have not defined any listeners for the "stored" event on the PhotoCollection collection.
token: eyJhdXRoVG9rZW4iOiJyYmx0cFd3YzUxVUlqd0JfaVhrck1RSVdmbE5wRmFKdXZFYjZvRXBWek5kIn0=
GET FILERECORD: eLdMFShwMftTZAL4r
Read file "me.jpg" bytes 0-14428/14429
createReadStream images
createReadStreamForFileKey images
token: eyJhdXRoVG9rZW4iOiJDMTFjd3lwUnJVU3NKRlZNUXNodWxQblJScXkyOXFxZklZcjc4bVBTT2pJIn0=
GET FILERECORD: eLdMFShwMftTZAL4r
Read file "me.jpg" bytes 0-14428/14429
createReadStream images
createReadStreamForFileKey images
^C[ec2-user@ip-10-0-0-5 udormio_build]$ [ec2-user@ip-10-0-0-5 udormio_build]$ no bundle/main.js
FileWorker ADDED - calling deleteChunks for-bash: [ec2-user@ip-10-0-0-5: command not found
i5BrCN6rZwLoPuXy4
Meteor._wrapAsync has been renamed to Meteor.wrapAsync
TempStore is mounted on storage.gridfs
FileWorker ADDED - calling deleteChunks for 8BFzyhkoLyE4RGPES
FS.HTTP.unmount:
{}
[ec2-user@ip-10-0-0-5 udormio_build]$ FileWorker ADDED - calling deleteChunks for i5BrCN6rZwLoPuXy4
Registered HTTP method URLs:
/cfs/files/:collectionName/:id/:filename
/cfs/files/:collectionName/:id
/cfs/files/:collectionName
token: eyJhdXRoVG9rZW4iOiJyYmx0cFd3YzUxVUlqd0JfaVhrck1RSVdmbE5wRmFKdXZFYjZvRXBWek5kIn0=
GET FILERECORD: 8BFzyhkoLyE4RGPES
Read file "me.jpg" bytes 0-14428/14429
createReadStream images
createReadStreamForFileKey images
Insertion in security = true
token: eyJhdXRoVG9rZW4iOiJyYmx0cFd3YzUxVUlqd0JfaVhrck1RSVdmbE5wRmFKdXZFYjZv-bash: FileWorker: command not found
RXBWek5kIn0=
HTTP PUT (update) handler received chunk: 0
GET FILERECORD: eLdMFShwMftTZAL4r
Insertion in security = true
createWriteStream _tempstore, internal: true
createWriteStreamForFileKey _tempstore
SA GridFS - DONE!
Thanks.