Ruby on Rails / Скрепка для бумаг / AWS :: S3 :: NoSuchBucket ошибка - PullRequest
3 голосов
/ 28 августа 2009

Я установил плагин paperclip и смог использовать его локально. Когда я настроил его для работы с amazon S3, я продолжаю получать сообщение об ошибке NoSuchBucket (указанный сегмент не существует) Документация Paperclip заявляет, что ведро будет создано, если это не существует, но ясно что-то идет не так в моем случае.

Сначала я установил драгоценный камень aws-s3 (v0.6.2). затем также установил гем right_aws (v1.9.0)

оба имеют соответствующие

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

строк в файле environment.rb

Код для файла image.rb со скрепкой выглядит следующим образом:

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

Ответы [ 5 ]

3 голосов
/ 28 августа 2009

Я не совсем уверен, что это так, но ваша загрузка s3_credentials отличается от той, которую я использую на своих рабочих сайтах.

Моя строка конфигурации:

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

Вместо

:s3_credentials => YAML.load_file("#{RAILS_ROOT}/config/s3.yml")[RAILS_ENV]
1 голос
/ 22 октября 2010

это должно создать, но ведро, но это была ошибка в один момент:

http://groups.google.com/group/paperclip-plugin/browse_thread/thread/42f148cee71a0477

У меня недавно возникла эта проблема, и оказалось, что время серверов было крайне отключено, и s3 не разрешил какие-либо обновления «в далеком будущем» или аналогичные, но ошибка rails была NoSuchBucket ... сбивает с толку

..

0 голосов
/ 20 мая 2013

Это не ваш случай, но AWS не допускает прописные буквы в имени корзины, и скрепка не проверяет это, в случае ошибки create_bucket.

0 голосов
/ 01 июня 2012

На случай, если кто-нибудь попадет сюда через Google: я увидел эту же ошибку, когда по ошибке переключил порядок 2-го и 3-го параметров, которые я передавал, на AWS::S3::S3Object.store.

0 голосов
/ 29 августа 2009

Я установил плагин s3fox для Firefox и создал ведро с плагином. Теперь Paperclip отлично работает с S3, так как идентифицированное ведро уже создано.

Но мне все еще любопытно, что Скрепка не может создавать новые корзины с кодом выше.

...