diff --git a/.meteor/packages b/.meteor/packages index 59f5e9f5e6a..b74221b12c2 100644 --- a/.meteor/packages +++ b/.meteor/packages @@ -49,3 +49,4 @@ http cfs:filesystem cfs:standard-packages cfs:gridfs +cfs:graphicsmagick diff --git a/.meteor/versions b/.meteor/versions index 07305296364..9e46506258e 100644 --- a/.meteor/versions +++ b/.meteor/versions @@ -20,6 +20,7 @@ cfs:collection-filters@0.2.4 cfs:data-man@0.0.6 cfs:file@0.1.17 cfs:filesystem@0.1.2 +cfs:graphicsmagick@0.0.18 cfs:gridfs@0.0.33 cfs:http-methods@0.0.29 cfs:http-publish@0.0.13 diff --git a/lib/file.coffee b/lib/file.coffee index c6229d8ce7a..b80e0334790 100644 --- a/lib/file.coffee +++ b/lib/file.coffee @@ -7,6 +7,14 @@ store = undefined beforeWrite = (fileObj) -> fileObj._setInfo 'avatars', 'storeType', storeType, true +transformWrite = (fileObj, readStream, writeStream) -> + if Meteor.settings?.public?.avatarStore?.size?.height? + height = Meteor.settings.public.avatarStore.size.height + width = Meteor.settings.public.avatarStore.size.width + gm(readStream, fileObj.name()).resize(height, width).stream().pipe(writeStream) + else + readStream.pipe(writeStream) + if storeType is 'FileSystem' path = "~/uploads" if Meteor.settings?.public?.avatarStore?.path? @@ -15,6 +23,7 @@ if storeType is 'FileSystem' store = new FS.Store.FileSystem "avatars", path: path beforeWrite: beforeWrite + transformWrite: transformWrite fileKeyMaker: (fileObj) -> filename = fileObj.name() filenameInStore = fileObj.name({store: 'avatars'}) @@ -23,12 +32,13 @@ if storeType is 'FileSystem' else store = new FS.Store.GridFS "avatars", beforeWrite: beforeWrite + transformWrite: transformWrite @Avatars = new FS.Collection "avatars", stores: [store] filter: - allow: - contentTypes: ['image/*'] + allow: + contentTypes: ['image/*'] @Avatars.allow insert: ->