J'ai compte en amazon S3 et je l'utilise juste pour mes css et javascripts et des photos comme un CDN. Je veux une tâche capistrano pour envoyer mes javascripts et css et des photos à mon seau en amazon s3. Comment je fais?Déployer mon css et javascripts avec capistrano à amazon S3
tahnks.
merci John Topley Basé dans votre code j'ai fait comme ci-dessous.
configure config vous/s3.yaml
access_key_id:
secret_access_key:
seau:
lib/tâches/s3.rake
namespace :s3 do
namespace :push do
require 'aws/s3'
#TIMESTAMP = '%Y%m%d-%H%M'
db = YAML::load(open("#{RAILS_ROOT}/config/database.yml"))
s3 = YAML::load(open("#{RAILS_ROOT}/config/s3.yml"))
AWS::S3::Base.establish_connection!(
:access_key_id => "#{s3['access_key_id']}",
:secret_access_key => "#{s3['secret_access_key']}"
)
desc 'Send images of current brach to S3'
task :images => :environment do
path = "images"
files = Dir.glob(File.join("public/#{path}", "*"))
bucket = "#{s3['bucket']}/#{path}"
files.each do |file|
AWS::S3::S3Object.store(File.basename(file), open(file), "#{bucket}", :content_type => 'application/x-gzip')
puts("Sending file #{file}")
end
end
desc 'Send css of current brach to S3'
task :css => :environment do
path = "stylesheets"
files = Dir.glob(File.join("public/#{path}", "*.css"))
bucket = "#{s3['bucket']}/#{path}"
files.each do |file|
AWS::S3::S3Object.store(File.basename(file), open(file), "#{bucket}", :content_type => 'application/x-gzip')
puts("Sending file #{file}")
end
end
desc 'Send js of current brach to S3'
task :js => :environment do
path = "javascripts"
files = Dir.glob(File.join("public/#{path}", "*.js"))
bucket = "#{s3['bucket']}/#{path}"
files.each do |file|
AWS::S3::S3Object.store(File.basename(file), open(file), "#{bucket}", :content_type => 'application/x-gzip')
puts("Sending file #{file}")
end
end
desc 'Send all files'
task :all => :environment do
system("rake s3:push:images RAILS_ENV=#{RAILS_ENV}")
system("rake s3:push:css RAILS_ENV=#{RAILS_ENV}")
system("rake s3:push:js RAILS_ENV=#{RAILS_ENV} ")
end
end
fin
pour Déployez d'actifs en amazon s3 râteau s3: push: images
râteau s3: pousser: js
s3: pousser: Css
s3: pression: tous