【问题标题】:How to list the folders at a specific path from an Amazon S3 bucket, in Objective C?如何在目标 C 中列出来自 Amazon S3 存储桶的特定路径的文件夹?
【发布时间】:2016-11-22 02:29:42
【问题描述】:

在我阅读了 Amazon documentation 之后,我似乎没有找到如何从我的 Amazon S3 存储桶中列出特定路径中的文件夹名称,我也在 StackOverflow 上环顾四周,没有运气,我自己回答了题。 我会把它贴在这里,希望它也能帮助其他人:)

【问题讨论】:

    标签: ios objective-c amazon-web-services amazon-s3


    【解决方案1】:

    这是我的代码:

    // 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 = @"/";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-29
      • 1970-01-01
      • 2021-02-24
      • 1970-01-01
      • 2015-11-30
      • 2021-04-24
      • 2016-02-06
      • 1970-01-01
      相关资源
      最近更新 更多