开发者社区 问答 正文

iOS-SDK之如何实现下载文件(一)?


简单下载


下载文件,可以指定下载为本地文件,或者下载为NSData:

  1. OSSGetObjectRequest * request = [OSSGetObjectRequest new];
  2. // 必填字段
  3. request.bucketName = @"<bucketName>";
  4. request.objectKey = @"<objectKey>";
  5. // 可选字段
  6. request.downloadProgress = ^(int64_t bytesWritten, int64_t totalBytesWritten, int64_t totalBytesExpectedToWrite) {
  7.     // 当前下载段长度、当前已经下载总长度、一共需要下载的总长度
  8.     NSLog(@"%lld, %lld, %lld", bytesWritten, totalBytesWritten, totalBytesExpectedToWrite);
  9. };
  10. // request.range = [[OSSRange alloc] initWithStart:0 withEnd:99]; // bytes=0-99,指定范围下载
  11. // request.downloadToFileURL = [NSURL fileURLWithPath:@"<filepath>"]; // 如果需要直接下载到文件,需要指明目标文件地址
  12. OSSTask * getTask = [client getObject:request];
  13. [getTask continueWithBlock:^id(OSSTask *task) {
  14.     if (!task.error) {
  15.         NSLog(@"download object success!");
  16.         OSSGetObjectResult * getResult = task.result;
  17.         NSLog(@"download result: %@", getResult.dowloadedData);
  18.     } else {
  19.         NSLog(@"download object failed, error: %@" ,task.error);
  20.     }
  21.     return nil;
  22. }];
  23. // [getTask waitUntilFinished];
  24. // [request cancel];


图片处理


OSS图片处理,是OSS对外提供的海量、安全、低成本、高可靠的图片处理服务。用户将原始图片上传保存到OSS,通过简单的 RESTful 接口,在任何时间、任何地点、任何互联网设备上对图片进行处理。图片处理提供图片处理接口,图片上传请使用上传接口。基于OSS图片处理,用户可以搭建自己的图片处理服务。
OSS图片处理提供以下功能:
SDK中使用时,只需要在下载图片时,为request设置xOssProcess属性。示例:
  1. OSSGetObjectRequest * request = [OSSGetObjectRequest new];
  2. request.bucketName = @"<bucketName>";
  3. request.objectKey = @"example.jpg";
  4. // 图片处理
  5. request.xOssProcess = @"image/resize,m_lfit,w_100,h_100";
  6. OSSTask * getTask = [client getObject:request];
  7. [getTask continueWithBlock:^id(OSSTask *task) {
  8.     if (!task.error) {
  9.         NSLog(@"download image success!");
  10.         OSSGetObjectResult * getResult = task.result;
  11.         NSLog(@"download image data: %@", getResult.dowloadedData);
  12.     } else {
  13.         NSLog(@"download object failed, error: %@" ,task.error);
  14.     }
  15.     return nil;
  16. }];
  17. // [getTask waitUntilFinished];
  18. // [request cancel];

需要对图片进行其它处理,只要替换request.xOssProcess的值就可以了。需要帮助,请参考:
  • 可视化图片处理工具 ImageStyleViever ,可以直观的看到OSS图片处理的结果
  • OSS图片处理的功能、使用演示 页面






展开
收起
青衫无名 2017-10-18 14:08:12 2305 分享 版权
阿里云 AI 助理回答

您提到的代码示例是使用阿里云对象存储服务(Object Storage Service,简称OSS)的SDK进行文件下载和图片处理的操作。下面我将为您简要解释这些操作的含义及如何应用。

简单下载

这段代码展示了如何使用OSS SDK从OSS桶中下载一个文件到本地或者获取为NSData格式。

  • 初始化请求:首先创建一个OSSGetObjectRequest对象,并设置必要的参数,如bucketName(桶名)和objectKey(对象键,即文件路径)。
  • 下载进度监控:通过downloadProgress块可以监听下载过程中的进度信息。
  • 指定下载方式:如果需要直接下载到本地文件,可以设置downloadToFileURL为文件的本地URL路径;如果不设置,则可以通过返回的getResult.dowloadedData获取到NSData对象。
  • 执行下载任务:使用OSS客户端(client)的getObject:方法发起下载请求,并通过continueWithBlock:来处理异步任务的结果,包括成功或失败的情况。

图片处理

OSS还提供了丰富的图片处理能力,允许在下载图片的同时对其进行各种处理,如缩放、裁剪、格式转换等,只需在请求中设置xOssProcess属性即可。

  • 图片处理指令:例如,request.xOssProcess = @"image/resize,m_lfit,w_100,h_100";这条指令会在下载图片时自动将其调整为宽度100像素、高度100像素,且保持原图的长宽比。
  • 多样化处理功能:根据不同的需求,你可以修改xOssProcess的值来实现不同的图片处理效果,比如添加水印、改变图片格式、应用滤镜等。
  • 辅助工具与文档:阿里云提供了可视化图片处理工具ImageStyleViewer帮助用户直观预览处理效果,以及详细的图片处理功能说明和使用演示页面,方便开发者快速上手。

综上所述,阿里云OSS不仅提供稳定可靠的对象存储服务,还内置了强大的图片处理能力,使得开发者能够灵活高效地管理和操作云端存储的图片资源。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答