获取对象列表

对象是存储数据的基本单元。对象由元信息(Object Meta),用户数据(Data)和文件名(Key)组成。对象由桶内部唯一的Key来标识。本文介绍如何获取对象列表。

接口定义:

- (void)listObjects:(AWSS3ListObjectsRequest *)request
     completionHandler:(void (^)(AWSS3ListObjectsOutput *response, NSError *error))completionHandler 

参数:

参数名 类型 说明
bucket NSString bucket名
prefix NSString 如果非NULL,则仅列举以指定的prefix作为前缀的对象
marker NSString 如果非NULL,指定一个标识符,在列举桶内对象列表时,返回的对象列表将仅是按照字典顺序排序后位于这个标识符之后的对象
delimiter NSString 如果非NULL,则是用来对桶内对象进行分组的字符串。所有名称包含指定的前缀且第一次出现delimiter字符之间的对象将作为一组元素,在返回信息的CommonPrefixes节点显示
maxkeys NSNumber 指定返回对象的最大数量,若为0则列举所有对象

代码示例:

- (void) listObjectsWithBucket:(NSString*) bucketName {
    AWSS3ListObjectsRequest *request = [[AWSS3ListObjectsRequest alloc] init];
    request.bucket = bucketName;
    [self.s3 listObjects:request completionHandler:^(AWSS3ListObjectsOutput * _Nullable response, NSError * _Nullable error) {
        if (error != nil) {
            NSLog(@"error: %@", error);
            return;
        }
    }];
}