2015-02-24 3 views
1

Когда я загружать изображения с помощью Скрепка на Heroku, он загружает изображение как http://s3.amazonaws.com/moviereviewnd/movies/images/000/000/005/small/wolf_of_wall_street_ver3_xxlg.jpeg?1424809711AWS Endpoint Ошибка при загрузке файлов с помощью Paperclip Развертывание на Heroku

Примечание: Это загружает нормально на локальном сервере (Ubuntu 14.04). Я пробовал все, что могу найти на этом сайте, и ничего не работает. Ведро, безусловно, не ведро Еврпоэна или что-то в этом роде. Я выбрал Орегон, и когда я вошел в AWS, он говорит https://console.aws.amazon.com/s3/home? область = мы-запад-2

При посещении URL изображения размещено выше, он говорит: «Ковш вы пытаетесь получить доступ, должен быть решен с помощью заданной конечной точки. Просьба направлять все будущие запросы к этой конечной точке.» , Он также говорит, что, когда вы посещаете выше URL, что конечная точка:

moviereviewnd.s3.amazonaws.com

Любые идеи? Я застрял на этом часами и, похоже, не понял этого.

В моей конфигурации/сред/production.rb, я в настоящее время это:

config.paperclip_defaults = { 
:storage => :s3, 
:s3_credentials => { 
    :bucket => ENV['S3_BUCKET_NAME'], 
    :access_key_id => ENV['AWS_ACCESS_KEY_ID'], 
    :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'], 
    :region => 'us-west-2', 
    :s3_endpoint => 's3-us-west-2.amazonaws.com' 
} 
} 

Но также попытался это:

config.paperclip_defaults = { 
:storage => :s3, 
:s3_credentials => { 
    :bucket => ENV['S3_BUCKET_NAME'], 
    :access_key_id => ENV['AWS_ACCESS_KEY_ID'], 
    :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'], 
    :region => 'us-west-2', 
    :s3_endpoint => 'moviereviewnd.s3.amazonaws.com' 
} 
} 

Оба способа приводят к тому же адресу, упомянутого в верхней этого сообщения и привести к сообщению «должно быть адресовано с использованием указанной конечной точки».

Вот мой Gemfile:

source 'https://rubygems.org' 
gem 'rails',    '4.2.0' 
gem 'sass-rails',   '5.0.1' 
gem 'uglifier',    '2.5.3' 
gem 'coffee-rails',   '4.1.0' 
gem 'jquery-rails',   '4.0.3' 
gem 'turbolinks',   '2.3.0' 
gem 'jbuilder',    '2.2.3' 
gem 'sdoc',     '0.4.0', group: :doc 
gem 'devise', '~> 3.4.1' 
gem 'paperclip', '~> 4.2.1' 
gem 'aws-sdk', '< 2.0' 
gem 'bootstrap-sass', '~> 3.3.3' 
gem 'rmagick', '~> 2.13.4' 

group :development, :test do 
    gem 'sqlite3',  '1.3.9' 
    gem 'byebug',  '3.4.0' 
    gem 'web-console', '2.0.0.beta3' 
    gem 'spring',  '1.1.3' 
end 

group :production do 
    gem 'pg',    '0.17.1' 
    gem 'rails_12factor', '0.0.2' 
end 
+0

Примечание: Загрузка изображений прекращается (без ошибок) и загружает AWS, но изображение не отображается из-за используемого URL. – Trinculo

ответ

2

Woohoo! Использование: s3_host_name вместо: s3_endpoint работал!

config.paperclip_defaults = { 
    :storage => :s3, 
    :s3_credentials => { 
     :bucket => ENV['S3_BUCKET_NAME'], 
     :access_key_id => ENV['AWS_ACCESS_KEY_ID'], 
     :secret_access_key => ENV['AWS_SECRET_ACCESS_KEY'], 
     :region => 'us-west-2', 
     :s3_host_name => 's3-us-west-2.amazonaws.com', 
     :url => ":s3_domain_url" 
    } 
Смежные вопросы