2012-01-17 8 views
2

sur l'ajout d'une image à mon document de gambas et d'essayer de tirer cette image de stockage Amazon S3 je reçois l'erreur suivanteAmazon S3 Prawn PDF

ArgumentError (http://s3.amazonaws.com/briefbucket/photos/2/small/259823_1583726693707_1851950185_973122_7126850_n.jpg?1326839482 not found): 

cependant j'ai regardé dans mon dossier de stockage, le jpg est là. J'ai remarqué que le nom de fichier de fin dans la crevette est "jpg? 1326839482"?

toute aide serait appréciée.

Répondre

10

Très bien, j'ai eu le même problème aujourd'hui. Maintenant: J'utilise Amazon S3 et charge les images téléchargées par les utilisateurs. Solution comme suit:

if @user.avatar? #in case user didn't upload anything 
    image open("#{ @user.avatar(:small).to_s.sub!(/\?.+\Z/, '') }") 
end 

Après

.to_s.sub!(/\?.+\Z/, '') 

est utilisé le débarrasser de toutes les choses après "?" Avant d'avoir déménagé sur Amazon, je n'utilisais pas "open" qui causait le problème. Faites-moi savoir si cela aide.

+0

** Rock on! ** Travaillé comme un charme. Merci. Je ne pouvais pas le faire fonctionner avant avec ceci: 'image" # {Prawn :: DATADIR}/.. 'ou ce genre de chose:' image open ("@ user.avatar.url (: medium)"). ' – Jordan

0

Je ne suis pas sûr de comprendre parfaitement, mais je pense que vous devez encoder votre nom de fichier URL (Voir encoding).

donc votre fichier encodée serait quelque chose comme:

http://s3.amazonaws.com/briefbucket/photos/2/small/259823_1583726693707_1851950185_973122_7126850_n.jpg%3F1326839482 

Le caractère ? est utilisé pour désigner le début du chemin de recherche.

+0

Avez-vous des suggestions sur la façon dont je coderais la demande de tirer cette image dans le pdf? – FrankHock

+0

ma plus grande question est pourquoi est le nom de votre fichier image 259823_1583726693707_1851950185_973122_7126850_n.jpg? 1326839482. – stevebot

+0

dans mon seau sur amazon S3 mon nom de fichier est 259823_1583726693707_1851950185_973122_7126850_n.jpg c'est ce que l'amazon stocke comme ??? – FrankHock