2015-02-24 156 views
1

當我上傳在Heroku上使用回形針的圖像,它上傳圖像http://s3.amazonaws.com/moviereviewnd/movies/images/000/000/005/small/wolf_of_wall_street_ver3_xxlg.jpeg?1424809711AWS終點誤差在上傳文件使用回形針部署到Heroku的

注:上傳本地服務器上的微細(Ubuntu的14.04)。我已經嘗試了一切,我可以找到這個網站,似乎沒有任何工作。 Bucket絕對不是一個Eurpoean桶或類似的東西。我選擇了俄勒岡州,當我登錄AWS時,它說https://console.aws.amazon.com/s3/home地區= US-西2

當您訪問上面貼的圖片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' 
} 
} 

兩種方式都導致在上面提到的相同的URL並且導致「必須使用指定端點來解決」消息。

這裏是我的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 2015-02-24 21:09:33

回答

2

哇噢!使用: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" 
    }