2009-08-28 5 views
3

J'ai installé le plugin paperclip et j'ai pu l'utiliser localement. Quand je l'ai configuré pour fonctionner avec amazon S3, je continue d'obtenir l'erreur NoSuchBucket (le compartiment spécifié n'existe pas). La documentation de Paperclip indique que le seau sera créé s'il n'existe pas, mais il est clair que quelque chose ne va pas dans mon cas.Ruby on Rails/Paperclip/AWS :: S3 :: Erreur NoSuchBucket

je suis insalled aws-s3 bijou (v0.6.2) gemme right_aws puis également installé (v1.9.0)

ont tous deux correspondant

config.gem "aws-s3", :lib => "aws/s3" 
config.gem 'right_aws', :version => '1.9.0' 

lignes dans le fichier environment.rb

Le code du fichier image.rb avec trombone est le suivant:

class Image < ActiveRecord::Base 

    belongs_to :work 

    has_attached_file :photo, :styles => {:big => "612x1224>", :small => "180X360>", :thumb => "36x36#"}, 
         :storage => 's3', 
         :s3_credentials => YAML.load_file("#{RAILS_ROOT}/config/s3.yml")[RAILS_ENV], 
         :path => ":attachment/:id/:style/:basename.:extension", 
         :bucket => 'my-unique-image-bucket' 

    attr_protected :photo_file_name, :photo_content_type, :photo_size 

    validates_attachment_presence :photo 
    validates_attachment_size :photo, :less_than => 3.megabytes 
    validates_attachment_content_type :photo, :content_type => ['image/jpeg', 'image/png', 'image/gif'] 

end 

Répondre

3

Je ne suis pas entièrement sûr que ce soit le cas, mais votre chargement de s3_credentials est différent de ce que j'utilise sur mes sites de production.

Ma ligne de configuration est:

:s3_credentials => "#{RAILS_ROOT}/config/s3.yml" 

Au lieu de

:s3_credentials => YAML.load_file("#{RAILS_ROOT}/config/s3.yml")[RAILS_ENV] 
+0

Le plugin actuel charge le fichier YAML, vous ne devriez pas. – Garrett

+0

essayé votre façon de charger le fichier YAML, il ne fonctionne toujours pas. Il n'y a probablement rien de mal avec le fichier d'informations d'identification car il se charge bien et donne des erreurs différentes quand il ne pouvait pas charger ou l'une des clés sont erronées. – fahrio

+0

Avez-vous créé le compartiment manuellement? (Utilisation de S3Fox, Transmit ou S3Hub), puis tentative de téléchargement? –

0

J'ai installé le plugin pour Firefox et S3Fox créé le seau avec le plug-in. Maintenant Paperclip fonctionne bien avec S3 car le compartiment identifié est déjà créé.

Mais je suis toujours curieux de savoir si Paperclip est incapable de créer de nouveaux seaux avec le code ci-dessus.

+0

Je ne sais pas, certains aspects de l'utilisation de S3 me semblent encore très flous et il est souvent difficile de déterminer quel système est en faute. Par exemple, les structures "répertoire" (les touches avec des barres obliques) ne semblent souvent pas fonctionner entre les applications clientes et j'ai même eu quelques problèmes d'autorisation avec S3. Cela étant dit, c'est toujours un excellent service et je m'en fie, mais il est nécessaire de tester votre chaîne d'outils à fond. –

0

au cas où quelqu'un serpente ici via google: J'ai vu cette même erreur lorsque je suis passé par erreur le ou der des 2ème et 3ème paramètres je passais à AWS::S3::S3Object.store.

0

Ce n'est pas votre cas, mais AWS n'autorise pas les lettres majuscules dans le nom du compartiment et le trombone ne le vérifie pas, à défaut de create_bucket.