全部产品
媒体转码

iOS版本

更新时间:2017-06-28 08:52:04   分享:   

  • 环境要求

    iOS系统版本:iOS 7.0以上

  • 安装

    OSS iOS SDK

    上传SDK下载

    • 直接引入Framework

      需要引入OSS iOS SDK framework和VODUpload iOS SDK framework。

      在Xcode中,直接把framework拖入您对应的Target下即可,在弹出框勾选Copy items if needed。

    • 工程中引入头文件

      1. #import <VODUpload/VODUploadClient.h>

      注意,引入Framework后,需要在工程Build SettingsOther Linker Flags中加入-ObjC。如果工程此前已经设置过-force_load选项,那么,需要加入-force_load <framework path>/AliyunOSSiOS

    • 兼容IPv6-Only网络

      OSS移动端SDK为了解决无线网络下域名解析容易遭到劫持的问题,已经引入了HTTPDNS进行域名解析,直接使用IP请求OSS服务端。在IPv6-Only的网络下,可能会遇到兼容性问题。而APP官方近期发布了关于IPv6-only网络环境兼容的APP审核要求,为此,SDK从2.5.0版本开始已经做了兼容性处理。在新版本中,除了-ObjC的设置,还需要引入两个系统库

      1. libresolv.tbd
      2. SystemConfiguration.framework
  • 创建VODUpload实例

    在这里需要设置回调函数

    1. OnUploadStartedListener testUploadStartedCallbackFunc = ^(UploadFileInfo* fileInfo) {
    2. NSLog(@"upload started .");
    3. };
    4. OnUploadSucceedListener testSuccessCallbackFunc = ^(NSString* filePath){
    5. NSLog(@"file:%@ upload success!", filePath);
    6. };
    7. OnUploadFailedListener testFailedCallbackFunc = ^(NSString* filePath, NSString* code, NSString* message){
    8. NSLog(@"failed code = %@, error message = %@", code, message);
    9. };
    10. // 单位:字节
    11. OnUploadProgressListener testProgressCallbackFunc = ^(NSString* filePath, long uploadedSize, long totalSize) {
    12. NSLog(@"progress uploadedSize : %li, totalSize : %li", uploadedSize, totalSize);
    13. };
    14. OnUploadTokenExpiredListener testTokenExpiredCallbackFunc = ^{
    15. NSLog(@"*token expired.");
    16. // get token and call resmeUploadWithAuth.
    17. };
    18. OnUploadRertyListener testUploadRertyListener = ^{
    19. NSLog(@"retry begin.");
    20. };
    21. OnUploadRertyResumeListener testUploadRertyResumeListener = ^{
    22. NSLog(@"retry resume.");
    23. };
    24. VODUploadListener *listener;
    25. listener = [[VODUploadListener alloc] init];
    26. listener.started = testUploadStartedCallbackFunc;
    27. listener.success = testSuccessCallbackFunc;
    28. listener.failure = testFailedCallbackFunc;
    29. listener.progress = testProgressCallbackFunc;
    30. listener.expire = testTokenExpiredCallbackFunc;
    31. listener.retry = testUploadRertyListener;
    32. listener.retryResume = testUploadRertyResumeListener;
  • 初始化

    填写授权信息,有2种方式

    • AK方式

      简单但是不够安全,建议测试环境下使用。

      1. VODUploadClient *uploader;
      2. [uploader init:<accessKeyId>
      3. accessKeySecret:<accessKeySecret>
      4. listener:listener];
    • 安全令牌方式

      安全但是较为复杂,建议生产环境下使用。安全令牌是临时、有时效性的,所以传递安全令牌是安全的。

      1. VODUploadClient *uploader;
      2. [uploader init:<accessKeyId>
      3. accessKeySecret:<accessKeySecret>
      4. secretToken:<secretToken>
      5. expireTime:<expireTime>
      6. listener:listener];
  • 列表管理

    • 添加上传文件

      注意:支持的文件大小<=4G

      1. [uploader addFile:<uploadFilePath>
      2. endpoint:<endpoint> //例如:'http://oss-cn-hangzhou.aliyuncs.com'
      3. bucket:<bucketName> //按实际bucket名称填写
      4. object:<objectKey>];

      上传时,如何指定媒体的属性(标题、标签、描述、类目、封面URL、用户自定义数据)呢?addFile有一个重载函数,函数最后的参数是一个VodInfo对象。定义如下:

      1. @interface VodInfo : NSObject
      2. @property (nonatomic, strong) NSString* title;
      3. @property (nonatomic, strong) NSString* tags;
      4. @property (nonatomic, strong) NSString* desc;
      5. @property (nonatomic, strong) NSNumber* cateId;
      6. @property (nonatomic, strong) NSString* userData;
      7. @property (nonatomic, strong) NSString* coverUrl;
    • 删除上传文件

      1. [uploader deleteFile:<index>];
    • 取消列表中的单个文件上传

      1. [uploader cancelFile:<index>];
    • 恢复列表中的单个文件上传

      1. [uploader resumeFile:<index>];
    • 获取上传文件列表

      1. [uploader listFiles];
    • 清理上传文件列表

      1. [uploader clearFiles];
  • 上传控制

    • 开始上传

      1. [uploader start];
    • 停止上传

      1. [uploader stop];
    • 暂停上传

      1. [uploader pause];
    • 恢复上传

      1. [uploader resume];
    • 安全令牌失效后恢复上传

      1. [uploader resumeWithToken:<accessKeyId>
      2. accessKeySecret:<accessKeySecret>
      3. secretToken:<secretToken>
      4. expireTime:<expireTime>]
本文导读目录
本文导读目录
以上内容是否对您有帮助?