簡體   English   中英

如何取消Amazon S3文件的URL?

[英]How to unexpire an Amazon S3 file url?

因此,我在Ruby on Rails中構建了一個Web應用程序,該文件將文件上傳到Amazon S3。 我將文檔鏈接存儲在如下數據庫中。

https://example.s3.amazonaws.com/mybucket/random_file.pdf

但是,當我嘗試訪問它時,出現以下錯誤。 如何使用Ruby aws-sdk gem以編程方式取消random_file.pdf鏈接? (或者我是否必須通過瀏覽器中的Amazon S3控制台來做到這一點?)

<Error>
<Code>AccessDenied</Code>
<Message>Request has expired</Message>
<Expires>2014-12-24T06:09:09Z</Expires>
<ServerTime>2015-03-12T19:12:38Z</ServerTime>
<RequestId>03BlahBlah</RequestId>
<HostId>
randomstring
</HostId>
</Error>

您提供的網址是一個公開的,未簽名的網址。 如果您打算讓用戶匿名訪問S3存儲桶中的對象,則需要使用公共讀取的ACL存儲它們。

根據用於將文件上傳到Amazon S3的工具,通常可以在上傳過程中指定一個罐頭的公共讀取acl。 使用aws-sdk gem的v2:

s3 = Aws::S3::Resource.new
obj = s3.bucket('name').object('key')
obj.upload_file('/source', acl:'public-read')
obj.public_url
#=> "https://..."

現在,您將能夠通過任何常規的HTTP GET請求(例如,使用瀏覽器)訪問該對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM