如何將您的 S3 存儲桶設為公開
我之前寫過一篇關於如何上傳圖片至 S3 的文章。 在我準備好 S3 存儲桶,並且成功上傳了圖片並將 URL 存儲在數據庫後,我發現這些圖片無法被公開以只讀的方式訪問。 圖片雖然存在,但任何人都無法查看。 如果我試圖訪問它,只會看到類似下面這樣的錯誤信息: <Error> <Code>AccessDenied</Code> <Message>Access Denied</Message> <RequestId>E5FBYNEYEFNZH</RequestId> <HostId> iImqC8XkvmPP4/BJxNGDZrPrDr7us1u3UeZqH8prlv3dk69R9m7uOaaaZDvTLAtne2rLkRWZ4= </HostId> </Error> 我覺得可能是權限問題,所以首先我試圖編輯“阻止公共訪問”設置,將原有的阻止設置禁用: 但是這並沒有解決問題,圖片依然無法訪問。 於是,我嘗試在單個文件的權限設置中,將“Everyone (公共訪問)”設置為“只讀”: 這樣做對於單個文件是有效的。 因此,我前往一般存儲桶權限,那裡有一個相似的 ACL 權限面板,我試圖設置相同的設置。 我將“Everyone (公共訪問)”設置為“只讀”,但結果並不如預期。 雖然我明確地設置了公共訪問權限,但是人們仍然無法公開查看文件。 事實上,沒有通過點擊操作可以實現這一點。 我必須設置一個存儲桶策略,可以從存儲桶權限頁面進行設置,然後我添加了以下內容: { "Version": "2008-10-17", "Statement": [ { "Sid": "AllowPublicRead", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::YOURBUCKETNAME/*" } ] } 請將 YOURBUCKETNAME 修改為您的存儲桶名稱。 通過添加這一段內容,我成功讓它生效。添加後,您可以將“阻止公共訪問”設置如下: 這就是全部了。現在,我的文件(在這種情況下是圖片)可以公開訪問了。