2012-03-25 4 views
2

Я пытаюсь использовать драгоценный камень Paperclip и хранить документы на Amazon S3.Скрепка с использованием S3

В моем Gemfile, у меня есть:

gem 'paperclip' 
gem 'aws-s3' 

В моей модели, у меня есть (с правильным ведром и ключами):

has_attached_file :attach, 
    :storage => :s3, 
    :bucket => ENV['mybucket'], 
    :s3_credentials => { 
    :access_key_id => ENV['mykey'], 
    :secret_access_key => ENV['mysecretkey'] 
    } 

Но, я получаю следующее сообщение об ошибке:

Missing credentials 

Любые идеи?

ответ

1

Проверьте, действительно ли определены переменные среды ENV['mykey'] и ENV['mysecretkey'].

+0

Я думал, что должен был ввести фактические значения в свой код. Но, когда вы упомянули переменные, я понял, что мне нужно установить переменные на Heroku. Теперь он работает нормально. Благодарю. – Reddirt

1

Я бы сделал что-то вроде этого. В модели

has_attached_file :attach, 
:styles => { 
:thumb=> "100x100#"}, 
:storage => :s3, 
:s3_credentials => "#{Rails.root}/config/s3.yml", 
:path => ":attachment/:id/:style/:basename.:extension", 
:bucket => 'bucket_name' 

Затем создайте s3.yml файл в папку конфигурации на месте следующий код там

development: 
    bucket: bucketname 
    access_key_id: xxx 
    secret_access_key: xxx 
test: 
    bucket: bucketname 
    access_key_id: xxx 
    secret_access_key: xxx 
production: 
    bucket: bucketname 
    access_key_id: xxx 
secret_access_key: xxx 

Это более экологически чистых способов пойти о делать что-то вроде этого.

Смежные вопросы