コードにそのまま書いてました。
def upload_file(f)
# TODO output files in debug logs as asset filename only.
one_year = 31557600
ext = File.extname(f)[1..-1]
mime = MultiMime.lookup(ext)
file = {
:key => f,
:body => File.open("#{path}/#{f}"),
:public => true,
:content_type => mime
}
asset_sync/storage.rb at master · AssetSync/asset_sync · GitHub
調べた経緯
asset_syncを使ってprecompileしたassetsをS3に上げているのだけど、web/assets
の下のファイルをみてたらパーミッションがEveryone can readになっててアレレとなった。CloudFront経由でしか公開しないつもりだったし、許可した覚えのない権限があって気持ち悪いので調べてみた。
まあ、別に読めるのはいいんだけど。
ちなみにasset_sync v2.0.0からは依存gemが減っている
依存するgemがfog
からfog-core
になったから。
なので、使用するプロバイダーを明示する必要がある。
# Gemfile
gem "asset_sync"
gem "fog-aws"
asset_sync/UPGRADING.md at master · AssetSync/asset_sync · GitHub