プライベートなバケットなんだけど、特定のURLを知ってる人だけがダウンロードするのを許可したいというときに使うやつ。 aws-sdk-rubyのv1だとAWS::S3Object#url_forで生成できたらしいんだけど、v2ではやり方が変わってるとのことなので試しにv2でやってみた。というかこれのコピペ。 # Gemfile gem "aws-sdk", "~> 2" # irbとか require "aws-sdk" s3 = Aws::S3::Client.new signer = Aws::S3::Presigner.new(client: s3) url = signer.presigned_url(:get_object, bucket: "my-private-bucket", key: "path/to/file.txt") デフォルトだと15分。presigned_url