Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
S3fs Fuse | 7,532 | a day ago | 4 | March 09, 2022 | 223 | gpl-2.0 | C++ | |||
FUSE-based file system backed by Amazon S3 | ||||||||||
Goofys | 4,764 | 2 months ago | April 04, 2020 | 269 | apache-2.0 | Go | ||||
a high-performance, POSIX-ish Amazon S3 file system written in Go | ||||||||||
S3cmd | 4,262 | 7 days ago | 1 | February 27, 2018 | 295 | gpl-2.0 | Python | |||
Official s3cmd repo -- Command line tool for managing Amazon S3 and CloudFront services | ||||||||||
Fake S3 | 2,905 | 136 | 13 | 6 months ago | 21 | August 15, 2018 | 119 | Ruby | ||
A lightweight server clone of Amazon S3 that simulates most of the commands supported by S3 with minimal dependencies | ||||||||||
Mc | 2,554 | 15 | 27 | a day ago | 50 | April 22, 2021 | 45 | agpl-3.0 | Go | |
Simple | Fast tool to manage MinIO clusters :cloud: | ||||||||||
Bucket Stream | 1,447 | 4 years ago | 4 | mit | Python | |||||
Find interesting Amazon S3 Buckets by watching certificate transparency logs. | ||||||||||
Frontend | 1,346 | 5 years ago | 529 | apache-2.0 | JavaScript | |||||
The official @github repository of the Trovebox frontend software. A photo sharing and photo management web interface for data stored "in the cloud" (i.e. Amazon S3, Rackspace CloudFiles, Google Storage). | ||||||||||
Aws Toolkit Vscode | 1,181 | 2 days ago | 356 | apache-2.0 | TypeScript | |||||
CodeWhisperer, CodeCatalyst, Local Lambda debug, SAM/CFN syntax, ECS Terminal, AWS resources | ||||||||||
Amazon S3 Php Class | 980 | 39 | 10 | 3 years ago | 2 | April 27, 2015 | 68 | PHP | ||
A standalone Amazon S3 (REST) client for PHP 5/CURL | ||||||||||
Aws | 921 | 2 months ago | 6 | apache-2.0 | Shell | |||||
A collection of bash shell scripts for automating various tasks with Amazon Web Services using the AWS CLI and jq. |
Uploads static assets to Amazon S3 with unique identifiers encoded into the path of the asset.
Only works with Rails 3.x because Rails 3 makes doing this sort of thing a lot easier and
that is all I needed it for.
This library takes standard Rails asset paths such as /stylesheets/main.css?1288717704
and converts them
into http://my_bucket.s3.amazonaws.com/stylesheets/main-id-95df8d9bf5237ad08df3115ee74dcb10.css
.
It uses an MD5 hash of the file contents to produce the id so the same asset will always have the same ID.
In my quest to achieve a Google Page Speed score of 100, this library achieves the following:
As an added bonus, all your assets are available over https://
as well.
Add the gem to your Gemfile
gem "asset_id"
Configure config/environments/production.rb
to use Amazon S3 as the asset host
and to use the id-stamped asset paths in helpers
config.action_controller.asset_host = Proc.new do |source|
'http://my_bucket.s3.amazonaws.com'
end
config.action_controller.asset_path = Proc.new do |source|
AssetID::Asset.fingerprint(source)
end
Add your Amazon S3 configuration details to config/asset_id.yml
production:
access_key_id: 'MY_ACCESS_KEY'
secret_access_key: 'MY_ACCESS_SECRET'
bucket: "my_live_bucket"
Optionally create a rake task in lib/tasks/asset_id_tasks.rake
to
perform the upload for use in your deploy scripts
namespace :asset do
namespace :id do
desc "uploads the current assets to s3 with stamped ids"
task :upload do
AWS::S3::DEFAULT_HOST.replace "s3-eu-west-1.amazonaws.com" # If using EU bucket
AssetID::Asset.asset_paths += ['favicon.png'] # Configure additional asset paths
AssetID::S3.upload
end
end
end
If you want to use the SSL host in your configuration you can do so in config/environments/production.rb
config.action_controller.asset_host = Proc.new do |source|
request.ssl? 'https://my_bucket.s3.amazonaws.com' : 'http://my_bucket.s3.amazonaws.com'
end
By default any relative CSS images that match files on the filesystem are converted to AssetID paths as well.
For S3, if you don’t specify a prefix
it will use the http://
bucket URL by default. You can override this in config/asset_id.yml
. For example if you wanted to use the https://
url:
production:
access_key_id: 'MY_ACCESS_KEY'
secret_access_key: 'MY_ACCESS_SECRET'
bucket: "my_live_bucket"
prefix: "https://my_bucket.s3.amazonaws.com"
To use Amazon CloudFront as a CDN for your assets all you need to do is create a CloudFront distribution for the bucket you have defined your configuration and then substitute your unique CloudFront domain name in config/environments/production.rb
config.action_controller.asset_host = Proc.new do |source|
'http://my_domain.d374pjuyllr15e.cloudfront.net'
end
SSL works fine here as well.