北京中投视讯 iOS上传SDK1.1.2
产品概述
视讯云上传SDK为您提供基于网络的数据存取服务,使用本SDK,您可以通过网络方便地存储和获取图片、音频、视频、文本等各类数据文件。SDK会将您上传的数据文件以对象(object)的形式组织到存储空间(bucket)里。 您还可以通过此SDK获取上传资源的外链地址。
版本更新说明
2017/12/18(版本号:1.1.2_17/12/18)
- 完善初始化时权限错误的逻辑
- API移除BucketName的传入
2017/12/12(版本号:1.1.0_17/12/12)
- 增加获取上传资源外链地址API
- 增加获取SP对应的BucketName API
- 增加获取版本号API
2017/8/20 (版本号:1.0.0)
- 单块上传
- 开始分块上传
- 取消分块上传
SDK功能特性
上传文件,支持图片、音频、文本、视频等各类数据文件。云存储将文件保存在对应的Bucket里。 获取上传资源的外链路径。
系统要求
1、最低支持iOS版本:iOS 8.0 2、支持的CPU架构:armv7,arm64,x86_64
集成方式
在视讯云开放平台下载视讯云上传CNLiveUploadSDK导入SDK,由于是动态库使用的时候需要把Framework 同时添加到 ‘General’->‘Embedded Binaries’中。CNLiveUploadSDK依赖于KS3YunSDK(动态库),将Demo中的KS3YunSDK导入工程中,同时添加到 ‘General’->‘Embedded Binaries’中。
SDK基本使用
- 初始化视讯云上传SDK
/**
初始化上传云SDK
@param appId 在open.cnlive.com网站申请得到的appId
@param appKey 在open.cnlive.com网站申请得到的appKey
@param isTestEnvironment YES:测试环境 NO:正式环境
*/
+ (void)setAppId:(NSString *)appId appKey:(NSString *)appKey isTestEnvironment:(BOOL)isTestEnvironment;
代码示例:
[CNLiveUpload setAppId:AppId appKey:AppKey isTestEnvironment:YES];
- 单块上传 参考Demo中的beginSingleUpload:方法, 单块上传最小支持5M,最大支持为5G
/**
单块上传
@param putObjectRequest 指定上传单块的request信息
@return 返回单块的response信息
*/
- (CNLivePutObjectResponse *)putObject:(CNLivePutObjectRequest *)putObjectRequest;
- 分块上传
参考Demo中的beginMultipartUpload方法,分块上传最小为5M一块,小于5M请使用单块上传
/**
上传分块
@param uploadPartRequest 指定上传分块的request信息
@return 返回resonse对象(里边有服务返回的数据(具体的参照demo))
*/
- (CNLiveUploadPartResponse *)uploadPart:(CNLiveUploadPartRequest *)uploadPartRequest;
调用这个接口会初始化一个分块上传,response会返回一个CNLiveMultipartUpload 对象,其属性有upload id, upload id 用来标识属于当前上传的具体的块,并且用来标识完成分块上传或者取消分块上传。
- 取消分块上传
参考Demo中的取消分块上传的使用。
/**
* 取消分块上传
*
* @param abortMultipartRequest 设置分块文件属性
*
* @return 返回resonse对象(里边有服务返回的数据(具体的参照demo))
*/
- (CNLiveAbortMultipartUploadResponse *)abortMultipartUpload:
(CNLiveAbortMultipartUploadRequest *)abortMultipartRequest;
- 获取上传资源外链地址
/**
获取上传资源外链地址
如果失败回调,可以开辟子线程重新请求此API获取资源外链地址
@param bucketKey SP上传Bucket里文件的路径(包括扩展名)
@param uploadType 上传文件类型:图片CNLiveYun_UploadType_Image和视频 CNLiveYun_UploadType_Video
@param successBlock 成功回调,返回上传资源外链地址
@param failureBlock 失败回调,返回错误信息
*/
+ (void)getUploadResourceUrlWithBucketKey:(NSString *)bucketKey uploadType:(CNLiveYun_UploadType)uploadType success:(void (^)(NSString *resUrl))successBlock failure:(void (^)(NSDictionary *error))failureBlock;
使用场景
使用方式 设置对应接口所需的request中相应的callbackUrl,callbackBody和callbackParams即可。 参数说明 callBackUrl: 回调url地址 callBackBody: 回调参数支持魔法变量、自定义参数以及常量 customParams:自定义参数,必须以前缀kss-开头
魔法变量说明:
参数 | 说明 | 备注 |
---|---|---|
bucket | 文件上传的Bucket | Utf-8编码 |
key | 文件的名称 | Utf-8编码 |
etag | 文件Md5值经过base64处理 | |
objectSize | 文件大小 | 以字节标识 |
mimeType | 文件类型 | |
createTime | 文件创建时间 | Unix时间戳表示,1420629372,精确到秒 |
Callback使用范例:
CNLivePutObjectRequest *putObjRequest = [[CNLivePutObjectRequest alloc] initWithName:kBucketName];
NSString *fileName = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"jpg"];
putObjRequest.data = [NSData dataWithContentsOfFile:fileName options:NSDataReadingMappedIfSafe error:nil];
putObjRequest.filename = [fileName lastPathComponent];
putObjRequest.callbackBody = @"objectKey=${key}&etag=${etag}&location=${kss-location}&name=${kss-price}";
putObjRequest.callbackUrl = @"http://127.0.0.1:19090/";// success
putObjRequest.callbackParams = [NSDictionary dictionaryWithObjectsAndKeys:
@"BeiJing", @"kss-location",
@"$Ten", @"kss-price",
@"error", @"kss", nil];// **** last key-value is test error
[putObjRequest setCompleteRequest];
CNLivePutObjectResponse *response = [[CNLiveClient initialize] putObject:putObjRequest];
常见错误提示
常见失败信息:
errorCode = "sys_1015";
errorMessage = "app \U5f02\U5e38”;
//appid和bundleID不一致
errorCode = "sys_1002";
errorMessage = "sign error”;
//appkey和appid不一致