如何在Objective C中列出来自Amazon S3存储桶的特定path中的文件夹?

读完亚马逊文档后 ,我似乎没有find如何从我的Amazon S3存储桶中的特定path列出文件夹名称,但我也回顾了自己的问题,并没有看到有关StackOverflow的问题。 我会在这里发布,希望它也能帮助别人:)

这是我的代码:

// pass path as: @"backup/" - (void)listAmazonFoldersAtPath:(NSString *)path completion:(void (^)(BOOL success, NSMutableArray *filesArray))completionBlock { NSMutableArray *collection = [[NSMutableArray alloc] init]; AWSS3 *s3 = [AWSS3 defaultS3]; AWSS3ListObjectsRequest *listObjectsRequest = [AWSS3ListObjectsRequest new]; listObjectsRequest.prefix = path; listObjectsRequest.delimiter = @"/"; listObjectsRequest.bucket = kAmazonS3Bucket; [[s3 listObjects:listObjectsRequest] continueWithBlock:^id(AWSTask *task) { if (task.error) { NSLog(@"listObjects failed: [%@]", task.error); completionBlock(NO, collection); } else { AWSS3ListObjectsOutput *listObjectsOutput = task.result; for (AWSS3CommonPrefix *s3ObjectPrefix in listObjectsOutput.commonPrefixes) { if(s3ObjectPrefix.prefix && s3ObjectPrefix.prefix.length > 0){ NSString *fileName = [[s3ObjectPrefix.prefix componentsSeparatedByString:@"/"] lastObject]; if (fileName && fileName.length > 0) { [collection addObject:s3ObjectPrefix.prefix]; } } } completionBlock(YES, collection); NSLog(@"Current folders: %@", collection); } return nil; }]; } 

我希望这会帮助别人。

注意:如果您还想列出子文件夹,请随时评论该行:

 listObjectsRequest.delimiter = @"/";