Question

J'essaie de télécharger un fichier à partir du navigateur, puis d'en faire une miniature, puis de télécharger les deux sur S3.

 File.open(params[:file][:tempfile]) do |p|
      AWS::S3::Base.establish_connection!(
          :access_key_id     => settings.s3_key,
          :secret_access_key => settings.s3_secret)
      AWS::S3::S3Object.store(pic_name,p,settings.bucket,:access => :public_read)

      thumb = Magick::Image.read(p)
      thumb.crop_resized!(75, 75, Magick::NorthGravity)

      AWS::S3::Base.establish_connection!(
          :access_key_id     => settings.s3_key,
          :secret_access_key => settings.s3_secret)
      AWS::S3::S3Object.store(pic_name + "s",thumb,settings.bucket,:access => :public_read)

J'ai essayé la plupart des combinaisons de code possibles pour le faire fonctionner, mais cela me donne une erreur de segmentation

c:0060 p:---- s:0261 b:0261 l:000260 d:000260 CFUNC  :read
c:0059 p:0117 s:0257 b:0257 l:002638 d:000256 BLOCK  /Users/gkay/Documents/yirmiyedi/web/banne/app/controllers/firsat.rb:33
c:0058 p:---- s:0253 b:0253 l:000252 d:000252 FINISH
c:0057 p:---- s:0251 b:0251 l:000250 d:000250 CFUNC  :open
c:0056 p:0190 s:0247 b:0247 l:002638 d:000246 LAMBDA /Users/gkay/Documents/yirmiyedi/web/banne/app/controllers/firsat.rb:27

Il commence donc lorsque RMAGIC essaie d'ouvrir le fichier. J'ai essayé beaucoup de choses comme

thumb = Magick::Image.read(p).first or [0] etc but none of them worked.

Des idées? Params [: fichier] est le paramètre post qui maintient le fichier

Était-ce utile?

La solution

Je suggérerais d'utiliser Mini magie Au lieu de cela - il utilise beaucoup moins de mémoire et c'est beaucoup moins buggy. Nous avons eu beaucoup de problèmes avec RMAGICK, mais aucun avec Mini Magick. Et passer de l'un à l'autre est très facile.

Autres conseils

Essayez d'ajouter

GC.start

En haut de votre code

Le problème résolu lorsque j'ai désinstallé le gemme RMAGICK ImageMagick, désinstallé, installé ImageMagick sans OpenMP, puis installé RMAGICK GEM.

Pour tous les nouveaux visiteurs, ImageMagick travaille actuellement sur Heroku sans Rmagick, donc pas besoin de l'inclure dans votre gemfile.

Cependant, si vous utilisez un trombone, vous devrez spécifier gem 'cocaine', '0.3.2', comme indiqué dans ce Publier, comme certaines autres versions ne fonctionnent pas.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top