最近项目中用到了阿里云OSS对象存储,用来存储APP中图片、音频等一些数据。但坑爹的阿里云居然在11月20日将SDK版本更新到了2.1.1,然而网上给出的教程都是1.*版本的(针对iOS),两个版本所调用的方法差别较大(自我感觉),当然原理都一样。所以看了两天SDK,自己封装了几 ...
最近项目中用到了阿里云OSS对象存储,用来存储APP中图片、音频等一些数据。但坑爹的阿里云居然在11月20日将SDK版本更新到了2.1.1,然而网上给出的教程都是1.*版本的(针对iOS),两个版本所调用的方法差别较大(自我感觉),当然原理都一样。所以看了两天SDK,自己封装了几个常用的方法。
一、OSS简单介绍
OSS是提供非结构化数据存取的服务,非结构化数据一般包括图片、文档、音频、视频等一些文件。OSS提供了接口,开发者可以通过这些接口对数据进行上传或下载等操作。
开通OSS服务后,创建一个bucket(数据容器,可以创建多个bucket,但是每个bucket名字唯一),在bucket属性里面可以设置bucket读写属性。然后所有的object(文件)都存储在bucket里面。
bucket:
bucket控制台:
二、OSS SDK1.0与SDK2.0方法调用区别
(1)SDK1.0方法调用形式
在SDK1.0中,主要通过OSSService-Bucket方式进行操作。首先获取service,设置service的数据中心域名和加签等。然后创建bucket,设置bucket属性。通过service调用一系列方法,并把bucket传入方法中,获取返回结果。实例代码:
1 - (void)upLoadObjectWithKey:(NSString *)key object:(NSData *)object type:(NSString *)type{ 2 OSSData *ossData; //存取请求结果 3 id<ALBBOSSServiceProtocol> ossService = [ALBBOSSServiceProvider getService]; //获取service 4 [ossService setGlobalDefaultBucketAcl:PRIVATE]; //访问属性为私有 5 [ossService setGlobalDefaultBucketHostId:@"<yourHostId>"]; //设置你的域名 6 7 //加签 8 [ossService setGenerateToken:^(NSString *method, NSString *md5, NSString *type, NSString *date, NSString *xoss, NSString *resource){ 9 10 NSString *content = [NSString stringWithFormat:@"%@\n%@\n%@\n%@\n%@%@", method, md5, type, date, xoss, resource];11 NSString *signature = [OSSTool calBase64Sha1WithData:content withKey:@"<secretKey>"]; //填入你的secretKey12 return [NSString stringWithFormat:@"OSS %@:%@", @"<accessKey>", signature]; //填入你的accessKey13 }];14 15 ossData = [ossService getOSSDataWithBucket:[ossService getBucket:@"yourBucketName"] key:key];16 [ossData setData:uploadData withType:type]; //设置上传文件类型17 [ossData enableUploadCheckMd5sum:YES];18 }
原标题:iOS使用阿里云OSS对象存储 (SDK 2.1.1)
关键词:IOS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。