我试图在托管S3存储桶的静态网站上创建一个私有对象,可以从签名的URL访问。看起来很简单,但是使用以下启用了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
是否缺少权限/设置才能使其正常工作?