2017-05-01 75 views
3

我現在有公共權限,像這樣我的S3容器中的一個:S3允許父文件夾的公共目錄列表?

{ 
    "Version": "2012-10-17", 
    "Id": "Policy1493660686651", 
    "Statement": [ 
     { 
      "Sid": "Stmt1493660682556", 
      "Effect": "Allow", 
      "Principal": "*", 
      "Action": "s3:GetObject", 
      "Resource": "arn:aws:s3:::polodata/*" 
     } 
    ] 
} 

當用戶導航到像一個特定的文件:https://s3-us-west-2.amazonaws.com/polodata/ETHBTC.csv,它會提示用戶下載 - 這是罰款。但是,當它們導航到:https://s3-us-west-2.amazonaws.com/polodata/(未指定文件)時,它會返回一個XML頁面。

我需要改變什麼,以便後者返回一個目錄列表頁面?

回答

2

訪問URL時,您不會收到目錄列表頁面。最近的是對象的XML列表,您必須爲該策略授予ListObjects許可權。它看起來像這樣:

此XML文件似乎沒有任何關聯的樣式信息。文檔樹如下所示。

<ListBucketResult xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> 
    <Name>my-bucket</Name> 
    <Prefix/> 
    <Marker/> 
    <MaxKeys>1000</MaxKeys> 
    <IsTruncated>false</IsTruncated> 
    <Contents> 
    <Key>foo.txt</Key> 
    <LastModified>2017-05-01T21:07:13.000Z</LastModified> 
    <ETag>"9311482f31be49fb2f41be9e16097a9c"</ETag> 
    <Size>213</Size> 
    <StorageClass>STANDARD</StorageClass> 
    </Contents> 
    <Contents> 
    <Key>my-folder/</Key> 
    <LastModified>2017-05-01T21:07:18.000Z</LastModified> 
    <ETag>"d41d8cd98f00b204e9800998ecf8427e"</ETag> 
    <Size>0</Size> 
    <StorageClass>STANDARD</StorageClass> 
    </Contents> 
    <Contents> 
    <Key>my-folder/bar.txt</Key> 
    <LastModified>2017-05-01T21:07:30.000Z</LastModified> 
    <ETag>"9311482f31be49fb2f41be9e16097a9c"</ETag> 
    <Size>213</Size> 
    <StorageClass>STANDARD</StorageClass> 
    </Contents> 
</ListBucketResult> 

有些人想出了一個目錄列表,例如模擬創造性的方式:Directory Listing in S3 Static Website

記住 - 亞馬遜S3是不是一個傳統的Web服務器。這是一個對象存儲服務,也可以提供內容到互聯網。因此,它不會像普通的Web服務器那樣運行。

另見:How Do I Configure an S3 Bucket for Static Website Hosting?

相關問題