本文档介绍如何进行简单下载。
注意事项
使用本文示例前您需要先通过自定义域名、STS等方式新建OSSClient,具体请参见初始化。
所创建存储空间的所属地域取决于初始化配置的endpoint地域信息。
权限说明
阿里云账号默认拥有全部权限。阿里云账号下的RAM用户或RAM角色默认没有任何权限,需要阿里云账号或账号管理员通过RAM Policy或Bucket Policy授予操作权限。
API | Action | 说明 |
API | Action | 说明 |
GetObject |
| 下载Object。 |
| 下载Object时,如果通过versionId指定了Object的版本,则需要授予此操作的权限。 | |
| 下载Object时,如果Object的元数据包含X-Oss-Server-Side-Encryption: KMS,则需要此操作的权限。 |
示例代码
下载文件时,您可以指定下载为本地文件或者下载为NSData。
OSSGetObjectRequest * request = [OSSGetObjectRequest new];
// 填写Bucket名称,例如examplebucket。
request.bucketName = @"examplebucket";
// 填写文件完整路径,例如exampledir/exampleobject.txt。Object完整路径中不能包含Bucket名称。
request.objectKey = @"exampledir/exampleobject.txt";
// 可选字段。
request.downloadProgress = ^(int64_t bytesWritten, int64_t totalBytesWritten, int64_t totalBytesExpectedToWrite) {
// 当前下载段长度、当前已经下载总长度、一共需要下载的总长度。
NSLog(@"%lld, %lld, %lld", bytesWritten, totalBytesWritten, totalBytesExpectedToWrite);
};
// request.range = [[OSSRange alloc] initWithStart:0 withEnd:99]; // bytes=0-99,指定范围下载。
// request.downloadToFileURL = [NSURL fileURLWithPath:@"<filepath>"]; // 如果需要直接下载到文件,需要指明目标文件地址。
OSSTask * getTask = [client getObject:request];
[getTask continueWithBlock:^id(OSSTask *task) {
if (!task.error) {
NSLog(@"download object success!");
OSSGetObjectResult * getResult = task.result;
NSLog(@"download result: %@", getResult.downloadedData);
} else {
NSLog(@"download object failed, error: %@" ,task.error);
}
return nil;
}];
// [getTask waitUntilFinished];
// [request cancel];
相关文档
关于简单下载的API接口说明,请参见GetObject。
关于初始化OSSClient,请参见如何初始化OSSClient实例。
该文章对您有帮助吗?
- 本页导读 (1)
- 注意事项
- 权限说明
- 示例代码
- 相关文档