署名付き URL からアクセスできる静的 Web サイトでホストされている S3 バケットでプライベート オブジェクトを作成しようとしています。簡単に思えますが、次のコードをvirtual_host
有効にして使用すると、常に 403 Forbidden が発生するようです。無効にするvirtual_host
と、期待どおりに動作します。
url = Aws::S3::Presigner.new.presigned_url(
:get_object,
:bucket => BUCKET,
:key => KEY,
:virtual_host => true
)
uri = URI.parse(url)
http = Net::HTTP.new(uri.host, uri.port)
request = Net::HTTP::Get.new(uri.request_uri)
resp = http.request(request)
puts resp.body
これを機能させるために不足している権限/設定はありますか?