एडब्ल्यूएस-S3 मणि स्थापित करने के बाद, आप अपने Capistrano नुस्खा के इस अंत में इस जोड़ सकते हैं:
set :cdn_user, "KEY ID" # This is called "CDN KEY API" for AWS
set :cdn_api_key, "YOUR KEY SECRET"
set :cdn_container, "bucket name"
namespace :assets do
task :to_cdn do
require 'aws/s3'
AWS::S3::Base.establish_connection!(:access_key_id => cdn_user, :secret_access_key => cdn_api_key)
assets_dir = "#{shared_path}/assets"
Dir.glob(assets_dir + "/**/*").each do |file|
if !File.directory?(file)
cdn_filename = file.gsub(assets_dir,"assets")
AWS::S3::S3Object.store(cdn_filename, open(file) , cdn_container)
end
end
end
end
इस तरह एक ट्रिगर का उपयोग करना:
after "deploy:assets:precompile", "assets:to_cdn"
तुम भी शुरू करने की आवश्यकता होगी
load 'deploy/assets'
परिणाम:: के साथ अपने नुस्खा में कुछ बिंदु पर संकलन आपकी संपत्ति संकलन के अंत में, अपने सभी परिसंपत्तियों के लिए पर धकेल दिया जा रहे हैं एस 3, और आप क्लाउडफ्रंट से उन्हें एक्सेस करने में सक्षम होंगे।
आपको अपने सीडीएन यूआरएल को इंगित करने के लिए अपने कॉन्फ़िगरेशन/पर्यावरण/उत्पादन.आरबी को अपडेट करना होगा।
config.action_controller.asset_host = "http://assets.example.com"
स्रोत
2012-05-24 22:32:39
क्या आपका मतलब सार्वजनिक निर्देशिका है? – eveevans
कस्टम उत्पत्ति जिस तरह से काम करती है क्लाउडफ़्रंट आपकी स्थिर सामग्री के प्रॉक्सी के रूप में कार्य करता है। क्लाउडफ़्रंट यूआरएल से स्थिर सामग्री की सेवा के लिए आप रेल को कॉन्फ़िगर करते हैं, लेकिन आप कुछ भी कॉपी नहीं करते हैं। फिर जब कोई उपयोगकर्ता क्लाउडफ़्रंट से स्थिर सामग्री का अनुरोध करता है, क्लाउडफ़्रंट कहता है, "मेरे पास वह फ़ाइल नहीं है, मैं इसे ऐप से प्राप्त करूंगा", यह आपकी साइट से फ़ाइल डाउनलोड करता है और फिर इसे पूरा करता है। तब से उस स्थिर वस्तु के सभी अनुरोधों पर क्लाउडफ़्रंट से आपके ऐप को परेशान किए बिना आते हैं। –
यह कमाल है! स्पष्टीकरण के लिए धन्यवाद। – chourobin