Hi - what kind of processing are you doing? And what kind of size
images?
That seems quite high.
I personally don't know of anything else that can be done to keep
memory lower as it already uses the RMagick destroy!/ping/non-blob
methods - I wonder if that's just as far as RMagick goes.
The other solution is creating other processors which don't use
rmagick.
This is pretty easy - e.g.
Dragonfly[:images].processor.add :my_resize do |temp_object,
*args|
t = Tempfile.new('dragonfly')
`convert -some -options #{temp_object.path} #{t.path}`
t
end
would shell out to the imagemagick command line (btw the above is
pseudo-code - you might want a t.close in there, etc.)
As for serving straight from S3, you could always do something like
class Album
before_save :assign_thumb, :if => :cover_image_uid_changed?
image_accessor :cover_image
image_accessor :cover_image_thumb
private
def assign_thumb
self.cover_image_thumb = cover_image ?
cover_image.thumb('100x50') : nil
end
end
to have another accessor for the thumbnail, then serve directly from
S3 with the correct url
"
http://s3.url.whatever.that.is/bucket_name/
#{album.cover_image_thumb_uid}"
Haven't tried that but it should work, or something similar
Mark