Skip to content

upyun/ios-sdk

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 

UPYUN iOS SDK

Build Status Platform Software License

1 SDK 功能简介

UPYUN iOS SDK 集成了表单上传UpYunFormUploader 和断点续传   UpYunBlockUpLoader   两部分,分别实现了以下文档接口:    

表单上传 适用于上传图片、短视频等小文件。(另外通过 otherParameters 可实现方便的图片视频预处理功能) 断点续传 适用于大文件上传和断点续传。(特别地,断点续传上传的图片不支持预处理)

2 运行环境

iOS 8.0 及以上版本, ARC 模式, 基于系统网络库 NSURLSession 发送 HTTP 请求。

3 安装使用说明:

步骤1:
下载 SDK,然后将 UpYunSDK 文件夹拖到工程中。(最新版本 2.0.0 暂时无法用 CocoaPods 安装。)

: 如果使用Xcode 9 版本, 拖到工程后, 仍需要在项目的 app target 中,查看 Build Phases 中的 Compile SourceCopy Bundle Resources ,手动添加需要编译的代码文件和资源文件。

步骤2:
参考 demo 工程 ViewController2.m 上传方法进行文件上传。需要引入相应的头文件, UpYunFormUploader.h 或者 UpYunBlockUpLoader.h

步骤3:
本地签名上传所需要的基本参数如: 服务名、操作员、操作员密码, 可以在 upyun 控制台获取:导航栏>云产品>云存储>创建服务

4 接口与参数说明:

4.1表单上传

表单上传接口共有两个,分别适用于 本地签名服务器签名 两种上传方式。 使用时请引入头文件 #import "UpYunFormUploader.h"。 具体使用方式请参考 demo 页面文件 "ViewController2.m".



/*表单上传接口
 参数  bucketName:           服务名
 参数  operator:             操作员
 参数  password:             操作员密码
 参数  fileData:             上传文件数据
 参数  fileName:             上传文件名
 参数  saveKey:              上传文件的保存路径, 例如:“/2015/0901/file1.jpg”。可用占位符,参考:http://docs.upyun.com/api/form_api/#save-key
 参数  otherParameters:      可选的其它参数可以为nil. 参考文档:表单-API-参数http://docs.upyun.com/api/form_api/#_2
 参数  successBlock:         上传成功回调
 参数  failureBlock:         上传失败回调
 参数  progressBlock:        上传进度回调
 */

- (void)uploadWithBucketName:(NSString *)bucketName
                    operator:(NSString *)operatorName
                    password:(NSString *)operatorPassword
                    fileData:(NSData *)fileData
                    fileName:(NSString *)fileName
                     saveKey:(NSString *)saveKey
             otherParameters:(NSDictionary *)otherParameters
                     success:(UpLoaderSuccessBlock)successBlock
                     failure:(UpLoaderFailureBlock)failureBlock
                    progress:(UpLoaderProgressBlock)progressBlock;


/*表单上传接口,上传策略和签名可以是从服务器获取
 参数  operator:        空间操作员
 参数  policy:          上传策略
 参数  signature:       上传策略签名
 参数  fileData:        上传的数据
 参数  fileName:        上传文件名
 参数  success:         上传成功回调
 参数  failure:         上传失败回调
 参数  progress:        上传进度回调
 */
- (void)uploadWithOperator:(NSString *)operatorName
                    policy:(NSString *)policy
                 signature:(NSString *)signature
                  fileData:(NSData *)fileData
                  fileName:(NSString *)fileName
                   success:(UpLoaderSuccessBlock)successBlock
                   failure:(UpLoaderFailureBlock)failureBlock
                  progress:(UpLoaderProgressBlock)progressBlock;

//取消上传
- (void)cancel;

注意:表单上传接口接口中 otherParameters 提供更丰富的上传参数定义,比如图片和音视频预处理参数 apps ,具体请参考文档表单-API-参数

4.2断点续传

断点续传接口只有一个,需要 本地签名 进行上传。 使用时请引入相应的头文件 #import "UpYunBlockUpLoader.h"。 具体使用方式请参考 demo 页面文件 "ViewController2.m".


/*断点续传接口
 参数  bucketName:           上传空间名
 参数  operator:             空间操作员
 参数  operatorPassword:     空间操作员密码
 参数  filePath:             上传文件本地路径
 参数  savePath:             上传文件的保存路径, 例如:“/2015/0901/file1.jpg”
 参数  successBlock:         上传成功回调
 参数  failureBlock:         上传失败回调
 参数  progressBlock:        上传进度回调
 */

- (void)uploadWithBucketName:(NSString *)bucketName
                    operator:(NSString *)operatorName
                    password:(NSString *)operatorPassword
                    filePath:(NSString *)filePath
                    savePath:(NSString *)savePath
                     success:(UpLoaderSuccessBlock)successBlock
                     failure:(UpLoaderFailureBlock)failureBlock
                    progress:(UpLoaderProgressBlock)progressBlock;
                    
                   
/** 断点续传后处理接口
 
 参数  bucketName:           服务名
 参数  operator:             操作员
 参数  operatorPassword:     操作员密码
 
 服务名、操作员、操作员密码, 可以在 upyun 控制台获取:https://console.upyun.com/dashboard/ 导航栏>云产品>云存储>创建服务
 * 参数  filePath:             上传文件本地路径
 * 参数  savePath:             上传文件的保存路径, 例如:“/2015/0901/file1.jpg”
 * 参数  notify_url:           回调通知地址, 详见 https://docs.upyun.com/cloud/av/#notify_url
 * 参数  tasks:                任务信息, 详见 https://docs.upyun.com/cloud/av/#tasks
 * 参数  successBlock:         上传成功回调
 * 参数  failureBlock:         上传失败回调
 * 参数  progressBlock:        上传进度回调
*/

- (void)uploadWithBucketName:(NSString *)bucketName
                    operator:(NSString *)operatorName
                    password:(NSString *)operatorPassword
                    filePath:(NSString *)filePath
                    savePath:(NSString *)savePath
                  notify_url:(NSString *)notify_url
                       tasks:(NSArray *)tasks
                     success:(UpLoaderSuccessBlock)successBlock
                     failure:(UpLoaderFailureBlock)failureBlock
                    progress:(UpLoaderProgressBlock)progressBlock;
                    
//取消上传
- (void)cancel;


/*删除本地缓存
 使用场景1: 失败的上传任务将记录在本地以实现续传,为避免将错误状态持久化在本地,而产生无法恢复的上传,可调用此方法恢复。
 使用场景2: 可在开发过程中使用此方法进行调试。
 使用场景3: 推荐将此方法放到 app 的“清除缓存”的功能功能中。
 使用场景4: 当上传出现失败,可以提供多个选项供用户操作,比如:接着续传或者重新上传,如果需要重新上传就需要调用此方法。
*/
+ (void)clearCache;

5 DEMO工程与使用示例:

下载运行 demo 工程即可以直接进行上传文件的测试。主要功能代码在 ViewController2.m 文件中。


- (void)uploadBtntap:(id)sender {
    
    [self testFormUploader1];             //本地签名的表单上传
    [self testFormUploader2];             //服务器端签名的表单上传(模拟)

    [self testBlockUpLoader1];            //串行断点续传
    [self testBlockUpLoader2];            //串行断点续传 后异步处理
    [self testBlockUpLoader3];              // 并行分块断点续传
    [self testBlockUpLoader4];            // 并行分块断点续传

    // 因为异步签名和文件上传签名不一致. 所以如果需要上传之并进行异步处理. 只能使用本地签名
    [self testBlockUpLoader5];            // 串行断点续传, 服务端签名.
    [self testBlockUpLoader6];            // 并行断点续传  服务端签名

    [self testFormUploaderAndAsyncTask];  //表单上传加异步多媒体处理--视频截图
    [self testFormUploaderAndSyncTask];   //表单上传加同步图片处理--图片水印
    [self testFileDeal];                  // 文件异步处理请求

}

About

UPYUN iOS SDK

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •