[英]How to list the folders at a specific path from an Amazon S3 bucket, in Objective C?
在閱讀了Amazon 文檔之后 ,似乎沒有找到如何在Amazon S3存儲桶的特定路徑上列出文件夾名稱的方法,我也環顧四周在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 = @"/";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.