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开发者指南 。