Giter VIP home page Giter VIP logo

ios-sdk's Introduction

UPYUN iOS SDK

Build Status Platform Software License

1 SDK 功能简介

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

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

2 运行环境

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

3 安装使用说明:

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

UpYunSDK 文件目录:

/UpYunSDK 
├── class  
│   ├── UpLoader
│   │   ├── UpYunBlockUpLoader.h    //分块上传接口
│   │   ├── UpYunBlockUpLoader.m
│   │   ├── UpYunFormUploader.h     //表单上传接口
│   │   ├── UpYunFormUploader.m
│   │   └── UpYunUploader.h
│   └── Utils
│
│  
└── class_deprecated // 旧版本 SDK



使用时候,请引入相应的头文件。


//表单上传,适用于上传图片、短视频等小文件。   
#import "UpYunFormUploader.h" 

//分块上传,适合大文件上传。
#import "UpYunBlockUpLoader.h"


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;
//取消上传
- (void)cancel;

5 DEMO工程与使用示例:

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


- (void)uploadBtntap:(id)sender {
    
  [self testFormUploader1];  //本地签名的表单上传
  [self testFormUploader2];  //服务器端签名的表单上传(模拟)
  [self testBlockUpLoader1]; //分块上传
  [self testFormUploaderAndAsyncTask]; //表单上传加异步多媒体处理--视频截图

}

ios-sdk's People

Contributors

linknoweasy avatar whirlwind avatar hsjcom avatar

Watchers

王立权 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.