This rake task will update (delete and copy) all the files under the public directory to S3, by default is the public directory but you can pass as argument the path to the folder inside the public directory.
The rake task will verify if the local file exist on s3 and if the local file have been modified since the upload to s3.
** Rails 2.3.4 **
In your Gemfile
gem 'syncassets_r2'
In your Rakefile
Dir["#{Gem.searcher.find('syncassets_r2').full_gem_path}/lib/tasks/**/*.rake"].each { |ext| load ext }
In your config/aws.yml
development: access_key_id: 'YOUR_ACCESS_KEY' secret_access_key: 'YOUR_SECRET_ACCESS_KEY' bucket: 'YOUR_BUCKET_NAME' test: access_key_id: 'YOUR_ACCESS_KEY' secret_access_key: 'YOUR_SECRET_ACCESS_KEY' bucket: 'YOUR_BUCKET_NAME' production: access_key_id: 'YOUR_ACCESS_KEY' secret_access_key: 'YOUR_SECRET_ACCESS_KEY' bucket: 'YOUR_BUCKET_NAME'
Running the task
rake syncassets:sync_s3_public_assets # this will sync all the folders and files under the /public directory of your app rake syncassets:sync_s3_public_assets[javascripts] # this will sync all the folders and files under the /public/javascripts directory of your app rake syncassets:sync_s3_public_assets[javascripts/some_folder] # this will sync all the folders and files under the /public/javascripts/some_folder directory of your app