簡體   English   中英

Amazon S3 + CloudFront查詢特定版本的存儲文件

[英]Amazon S3 + CloudFront query for specific version of stored file

我創建了一個新的S3 Bucket,啟用了版本控制功能,並在我的cloudfront發行版上打開了“轉發查詢字符串”。

我知道您可以通過將versionId作為查詢字符串發送來訪問不同的對象版本。

這如何與雲端和簽名網址一起使用?

如果我想返回文件的特定版本,是否必須使用附加的查詢字符串對URL進行簽名,例如:

http://example.cloudfront.net/files/file.pdf?verisonId=[id]

好吧,我嘗試與versionId一起簽署網址 - 它沒有用。 僅對URL進行簽名,然后附加versionId會給出拒絕訪問的響應。

<Error>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>89F25EB47DDA64D5</RequestId>
<HostId>Z2xAduhEswbdBqTB/cgCggm/jVG24dPZjy1GScs9ak0w95rF4I0SnDnJrUKHHQC</HostId>
</Error>

任何幫助都感激不盡。

您需要設置正確的ACL以允許CloudFront規范ID訪問版本化對象,或者您需要設置允許操作“s3:GetObjectVersion”存儲桶策略 您可能只有GetObject,它允許您通過CloudFront檢索普通對象,但不能檢索?versionId = <>對象。

添加類似於的存儲桶策略:

{
     "Version":"2012-10-17",
     "Id": "PolicyForCloudFrontPrivateContent",
     "Statement": [{
          "Action": ["s3:GetObject", "s3:GetObjectVersion" ],
          "Effect": "Allow",
          "Principal":{"CanonicalUser":"<CLOUDFRONT CANONICAL ID>"},
          "Resource": "<BUCKET RESOURCE IDENTIFIER>",
          "Sid": "Grant a CloudFront Origin Identity access to support private content and versioned content."
     }]
}

暫無
暫無

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

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