2017-10-13 88 views
0

我試圖使用ajax請求來獲取我的s3存儲桶子文件夾中的所有圖像文件。訪問子文件夾中的文件AWS S3

我已經使用下拉菜單公開了子文件夾(請參見圖片),但我仍然收到403 (Forbidden)響應。我也嘗試爲該特定文件夾添加存儲桶政策,但仍然沒有運氣。

有什麼我應該做權限明智,我失蹤了?我本來以爲讓子文件夾公開就可以完成這項工作。

這裏是我的電話代碼是否有幫助:

var imgUrl = "http://s3.amazonaws.com/[BUCKET NAME]/images/gallery"; 
var loadedImages; 
var imgData = { 
     images: [] 
    } 

$.ajax({ 
    url: imgUrl, 
    success: function getData(data) { 
     $(data).find("a").attr("href", function(i, val) { 
      if (val.match(/\.(jpe?g|png|gif)$/)) { 

       loadedImages = $(this).attr("href"), 
        imgData.images.push($(loadedImages)); 
        console.log(imgData) 
      } 
     }); 
    } 
    }); 

編輯:這是我的桶的權限,因爲它代表:

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
     { 
      "Sid": "AddPerm", 
      "Effect": "Allow", 
      "Principal": "*", 
      "Action": "s3:GetObject", 
      "Resource": "arn:aws:s3:::[BUCKET NAME]/*" 
     }, 
     { 
    "Sid":"PublicReadGetObject", 
     "Effect":"Allow", 
     "Principal": "*", 
     "Action":["s3:GetObject"], 
     "Resource":["arn:aws:s3:::[BUCKET NAME]/images/gallery/*" 
     ] 
    } 
    ] 
} 

S3 subfolder permissions dropdown

+0

你可能會發現這個頁面有趣https://brandonwamboldt.ca/understanding-s3-permissions-1662/ – Vorsprung

+0

相關:https://stackoverflow.com/questions/41251450/how-to -make-ajax-call-to-aws-s3-bucket-to-get-file-name-from-folder – jarmod

+0

請注意,「公開」僅適用於現有對象,而不適用於將來的對象。 –

回答

0

請與我們分享你的水桶政策,或者如果您需要提供公衆閱讀權限以便更新寶licy這樣的:

{ 
    "Version":"2012-10-17", 
    "Statement":[{ 
    "Sid":"PublicReadGetObject", 
     "Effect":"Allow", 
     "Principal": "*", 
     "Action":["s3:GetObject"], 
     "Resource":["arn:aws:s3:::example-bucket/foldername/*" 
     ] 
    } 
    ] 
} 
+0

將我的存儲桶策略添加到原始問題 –

相關問題