全部产品
Search
文档中心

对象存储 OSS:iOS限定条件下载

更新时间:Aug 20, 2024

下载文件(Object)时,可以指定一个或多个限定条件。满足限定条件则下载,条件不满足则返回错误且不会触发下载行为。

注意事项

  • 使用本文示例前您需要先通过自定义域名、STS等方式新建OSSClient,具体请参见初始化

    说明

    所创建存储空间的所属地域取决于初始化配置的endpoint地域信息。

  • 要下载文件,您必须有ossGetObject权限。具体操作,请参见为RAM用户授权自定义的权限策略

示例代码

以下代码用于下载存储空间examplebucket目录exampledir下的文件exampleobject.txt,且下载过程中指定了多个限定条件:

OSSGetObjectRequest *get = [OSSGetObjectRequest new];
// 填写Bucket名称。关于Bucket名称命名规范的更多信息,请参见Bucket。
get.bucketName = @"examplebucket";
// 填写不包含Bucket名称在内的Object完整路径。关于Object名称命名规范的更多信息,请参见Object。
get.objectKey = @"exampledir/exampleobject.txt";
NSMutableDictionary *headerFields = [NSMutableDictionary dictionary];
// 指定下载实际修改时间晚于Fri, 13 Oct 2021 14:47:53 GMT的Object。
[headerFields setValue:@"Fri, 13 Oct 2021 14:47:53 GMT" forKey:@"If-Modified-Since"];
// 指定下载实际修改时间早于或者等于当前时间的Object。
[headerFields setValue:[[NSDate new] oss_asStringValue] forKey:@"If-Unmodified-Since"];
// 指定下载与传入的ETag值不匹配的Object。
[headerFields setValue:@"5B3C1A2E0563E1B002CC607C****" forKey:@"If-None-Match"];
// 指定下载与传入的ETag值匹配的Object。
[headerFields setValue:@"fba9dede5f27731c9771645a3986****" forKey:@"If-Match"];
get.headerFields = headerFields;

[[[client getObject:get] continueWithBlock:^id _Nullable(OSSTask * _Nonnull task) {
    if (!task.error) {
        NSLog(@"get object success!");
    } else {
        NSLog(@"get object error: %@", task.error);
    }
    return nil;
}] waitUntilFinished];

相关文档