Эта проблема разрешена. Оказывается, я потратил слишком много времени на изучение проблемы, так как это показалось обычным явлением, и недостаточно времени, чтобы проверить, что мой секретный ключ доступа был скопирован/вставлен правильно в моем локальном env.AWS :: S3 :: Ошибки :: ПодписьDoesNotMatch с помощью Paperclip и Amazon S3 в локальном dev
Я прочитал около 20 вопросов об этом, и до сих пор никто мне не помог. Я продолжаю получать исключение SignatureDoesNotMatch в моем контроллере создания, и я не могу понять, почему.
Моего класса (с незначительным переименованием в «S3», так как проект не выйдут):
class S3File < ActiveRecord::Base
has_attached_file :s3_attachment,
storage: :s3,
bucket: ENV['S3_BUCKET_NAME'],
s3_credentials: {
access_key_id: ENV['AWS_ACCESS_KEY_ID'],
secret_access_key: ENV['AWS_SECRET_ACCESS_KEY']
},
path: ':id/temp.jpg'
end
Я определяю переменную ENV в файл .env и запустить свой сервер с бригадиром, и я проверил что эти значения верны в «консоль-пулемет запуска».
Это никогда не работает для меня, но до сих пор я пытался несколько путей, я установил ImageMagick, и включал в себя следующие камни:
# rails -v Rails 3.2.2
# ruby -v Ruby 1.9.2p290
gem 'paperclip' # paperclip (3.0.4) in Gemfile.lock
gem 'aws-s3' # aws-s3 (0.6.3) in Gemfile.lock
gem 'aws-sdk' # aws-sdk (1.5.2) in Gemfile.lock
gem 'rmagick' # rmagick (2.13.1) in Gemfile.lock
И, наконец, мой _form частичный вид:
<%= form_for @s3_file do |f| %>
<div class="field">
<%= f.file_field :email_attachment %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
Я предоставлю дополнительную информацию всем, кто в ней нуждается, но на данный момент я в тупике. Спасибо всем, кто может помочь вообще.
Спасибо, я попробую. https://devcenter.heroku.com/articles/s3, похоже, предлагает использовать aws-s3 с paperclip, а затем я получаю ошибки о необходимости aws-sdk. – joncalhoun
На самом деле это зависит от того, какую версию Paperclip вы используете. Недавно они изменили его с aws-s3 на aws-sdk, поэтому вам придется использовать Gem на основе той версии, которую вы используете. Не знаю, когда они сделали переключатель, но если вы используете последнюю версию, тогда aws-sdk - это путь. –
Это не было основной причиной проблемы, но это позволило мне удалить драгоценный камень, который мне действительно не нужен, и, возможно, предотвратить будущие проблемы, так что спасибо. – joncalhoun