簡體   English   中英

如何在Amazon S3存儲桶中的文件夾中獲取文件列表

[英]how to get file list inside of a folder in Amazon S3 Bucket

好的,我看到了這個這個 文檔告訴亞馬遜是平面文件系統,要創建/獲取/設置文件夾,必須使用Delimiter ='/'和Prefix。

但是我沒明白,我的意思是我無法編寫代碼。 所以我有一個水桶和一個有一些文件的文件夾,我想要那些文件的清單

所以我嘗試了bucket/folder/bucket/folder/bucket/folder/都失敗了。

如果我只嘗試bucket ,它可以正常工作

S3ListObjectsRequest *getListObjectsRequest= [[S3ListObjectsRequest alloc] initWithName:@"bucket"]; // tried also here bucket/folder , /bucket/folder/ ,  bucket/folder/ 
    S3ListObjectsResponse *getListObjectsResponse = [self.s3 listObjects:getListObjectsRequest];

    //test to see inside of the folder
    NSArray *objectsinamazon = [self.s3 listObjectsInBucket:@"bucket"]; //as I said I tried bucket/folder , /bucket/folder/ ,  bucket/folder/ all od this fails.

    NSLog(@"array is %@",objectsinamazon);

    S3ListObjectsResult *listObjectsResults = getListObjectsResponse.listObjectsResult;



    for (S3ObjectSummary *objectSummary in listObjectsResults.objectSummaries) {

        NSLog(@"Bucket Contents %@:",[objectSummary key]);
       //get last modified date of file by using meta data
    S3GetObjectMetadataRequest *getMetadataRequest = [[S3GetObjectMetadataRequest alloc] initWithKey:[objectSummary key] withBucket:@"bucket"];
    S3GetObjectMetadataResponse *getMetadataResponse = [self.s3 getObjectMetadata:getMetadataRequest];

}
}

我正在詢問確切的語法(代碼)以將bucket/folder請求發送到亞馬遜S3

S3不是平坦的,它只有兩個級別:存儲桶和對象名稱(存儲桶內部是平坦的)。 桶永遠只是桶。 您正在嘗試添加到存儲桶名稱,這會產生無效的存儲桶名稱。

prefix和delimiter參數是S3ListObjectsRequest的屬性 我的Objective-C生銹了,但是我認為您可以通過以下方式設置這些屬性:

getListObjectsRequest.prefix = @"my/prefix/";
getListObjectsRequest.delimiter = @"/";

在將請求提交給S3之前。

暫無
暫無

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

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