2013-06-23 7 views
5

पर होस्ट मैं कैसे अमेज़न S3 का उपयोग कर एक रेल अनुप्रयोग के लिए Heroku पर तैनात करने के लिए साथ Carrierwave से तैनाती निर्देशों का पालन किया config.ru के लिए अतिरिक्त पंक्ति और कॉन्फ़िगर/प्रारंभकर्ता/carrierwave.rb फ़ाइल बनाई, लेकिन कोई सफलता नहीं।विन्यास, Heroku

नीचे कैरिजवेव प्रारंभकर्ता है, जिसमें कुंजी फिर से सक्रिय होती है।

क्या यह सही ढंग से सेटअप है?

मुझे और क्या करने की ज़रूरत है?

कोई भी चरण-दर-चरण मार्गदर्शिका इसे लागू करने में मेरी सहायता करने के लिए?

CarrierWave.configure do |config| 
config.fog_credentials = { 
:provider    => 'AWS',      # required 
:aws_access_key_id  => REDACTED,      # required 
:aws_secret_access_key => REDACTED,      # required 
:region     => 'eu-west-1',     # optional, defaults to 'us-east-1' 
:host     => 's3.example.com',    # optional, defaults to nil 
:endpoint    => 'https://s3.example.com:8080' # optional, defaults to nil 
} 
config.fog_directory = 'myawsbucket'     # required 
config.fog_public  = false         # optional, defaults to true 
config.fog_attributes = {'Cache-Control'=>'max-age=315576000'} # optional, defaults to {} 
end 

उत्तर

7

क्या आपने अपलोडर फ़ाइल जेनरेट की थी?

rails generate uploader Avatar

यह इस तरह की एक फ़ाइल उत्पन्न करेगा: एप्लिकेशन/अपलोड करने वाले व्यक्तियों/avatar_uploader.rb वर्ग AvatarUploader < CarrierWave :: अपलोडर :: बेस भंडारण: फ़ाइल अंत

अधिक जानकारी https://github.com/carrierwaveuploader/carrierwave में शुरू करना

यह मेरी फ़ाइलें हैं config/initializers/carrierwave.rb

CarrierWave.configure do |config| 
    config.fog_credentials = { 
    :provider    => 'AWS', 
    :aws_access_key_id  => 'REDACTED', 
    :aws_secret_access_key => 'REDACTED' 
    } 
    config.fog_directory = "myawsbucket" 
end 

एप्लिकेशन/अपलोड करने वाले व्यक्तियों/amazon_uploader.rb

class AmazonUploader < CarrierWave::Uploader::Base 
    include CarrierWave::MiniMagick 

    include Sprockets::Helpers::RailsHelper 
    include Sprockets::Helpers::IsolatedHelper 

    storage :fog 

    include CarrierWave::MimeTypes 
    process :set_content_type 

    def store_dir 
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" 
    end 

    version :user_thumb do 
    process :resize_to_limit => [200, 200] 
    end 

    def extension_white_list 
    %w(jpg jpeg gif png) 
    end 
end 

मैं आपको यह भी सलाह देते हैं इस railcasts:

http://railscasts.com/episodes/253-carrierwave-file-uploads

http://railscasts.com/episodes/383-uploading-to-amazon-s3