Amazon AWS IOS SDK:如何列出FOLDER中的所有文件名

我正在使用AWS IOS SDK并尝试列出FOLDER中的所有文件。

这段代码用来列出桶中的所有文件:

-(void) s3DirectoryListing: (NSString *) bucketName { s3Client = [[AmazonS3Client alloc] initWithAccessKey:ACCESS_KEY withSecretKey:SECRET_KEY]; @try { S3ListObjectsRequest *req = [[S3ListObjectsRequest alloc] initWithName:bucketName]; S3ListObjectsResponse *resp = [s3Client listObjects:req]; NSMutableArray* objectSummaries = resp.listObjectsResult.objectSummaries; for (int x = 0; x < [objectSummaries count]; x++) { NSLog(@"objectSummaries: %@",[objectSummaries objectAtIndex:x]); } } @catch (NSException *exception) { NSLog(@"Cannot list S3 %@",exception); } } 

所以如果我传递一个bucketName名称,这个工作。 但是,如果我尝试并通过bucketName /文件夹名称“我得到一个错误消息。此代码似乎并不喜欢桶和文件夹path组合的组合。

任何想法赞赏。

Amazon S3是一个“平面”文件系统,这意味着它没有物理文件夹。 如您所知,“文件夹”只是添加到文件名中的前缀。

您需要将prefix属性设置为您的请求(请参阅文档 )

例如,给定以下一组文件:

folderName1 / fileNameA.txt
folderName1 / fileNameB.txt
folderName2 / folderName3 / fileNameC.txt

如果您使用folderName1设置prefix ,并使用/ delimiter ,则只应获得前两个条目。

最后但并非最不重要的,只留下您的bucketName与水桶名称:)

更多信息在S3开发者指南 。