UFileSDK 3.0.9

UFileSDK 3.0.9

maxwellqiucloud_els_ios 维护。



UFileSDK 3.0.9

  • 作者
  • ethan.zhang

US3 SDK for iOS

Software License

概要

本文档主要是 US3 (原名 UFile) SDK for iOS 的使用说明文档,下面我们从以下几个方面进行介绍:

  • 目录结构
  • 环境要求
  • 安装使用
  • 功能说明
  • 常见问题
  • 联系我们

目录结构

该仓库主要包括 SDK 的源码以及示例项目,示例项目包含 Objective-CSwift 两个版本。

目录 说明
SDK/UFileSDK SDK 源码
SDK/UFileSDK/UFileSDKTests SDK 各个功能的单元测试
SDK/documents/devDocuments.zip SDK 开发文档(解压后可用浏览器查看)
SDK/Demos/OC/UFileSDKDemo Demo 程序(Objective-c 版本)
SDK/Demos/Swift/UFileSDKDemo-swift Demo 程序(Swift 版本)

环境要求

  • 系统版本iOS须≥11.0
  • 必须是UCloud的用户,并且已开通US3服务。

安装使用

cocoapods方式

在项目的Podfile中添加下列依赖项:

pod 'UFileSDK'

使用方法

在项目中引入头文件

#import <UFileSDK/UFileSDK.h>

注意,引入Framework后,需要在工程设置Build SettingsOther Linker Flags中加入-lc++ 。如下图所示

功能说明

文件操作功能

  • 文件上传(以路径方式;以NSData方式;分片上传)
  • 文件下载(下载指定范围文件数据;下载整个文件;下载文件到路径)
  • 查询文件
  • 删除文件
  • 获取bucket下的文件列表(全部文件列表;指定前缀等条件的文件列表)
  • 获取bucket下文件的下载地址(公开bucket空间下文件下载地址;私有bucket空间下文件下载地址)
  • 获取文件的headfile信息(包括文件的mimetype,etag等)
  • 获取文件的Etag
  • 对比本地与远程文件的Etag

其操作类是UFFileClient.h,以上各个功能的详细使用方法请查看SDK单元测试或者我们提供的Demo

后台下载功能

  • 在项目的 Capability 中启用 Background Modes -> 勾选 Background fetch。
  • 在 AppDelegate 里添加以下代码:
// 后台下载任务全部完成时回调
- (void)application:(UIApplication *)application handleEventsForBackgroundURLSession:(NSString *)identifier completionHandler:(void (^)(void))completionHandler;

代码示例

文件管理

在此假设,US3控制台上你已经创建好了Bucket。下面我们介绍一下如何进行文件操作。

首先创建一个文件操作类,需要传入配置信息(主要是bucket配置信息):

#import <UFileSDK/UFileSDK.h>

 // 使用本地签名,不推荐使用这种方式
UFConfig *ufConfig = [UFConfig instanceConfigWithPrivateToken:@"bucket私钥" publicToken:@"bucket公钥" bucket:@"bucket名称" fileOperateEncryptServer:nil fileAddressEncryptServer:nil proxySuffix:@"域名后缀" isHttps:YES];
    
 // 使用服务器签名,推荐使用
UFConfig *ufConfig = [UFConfig instanceConfigWithPrivateToken:nil publicToken:@"bucket公钥" bucket:@"bucket名称" fileOperateEncryptServer:@"文件操作签名服务器" fileAddressEncryptServer:@"获取文件URL的签名服务器" proxySuffix:@"域名后缀" isHttps:YES];
UFFileClient *fileClient =  [UFFileClient instanceFileClientWithConfig:ufConfig];

文件管理操作时,你所操作的bucket空间就是你在创建《UFFileClient》时所配置的bucket。下面我们举例一个简单的文件上传:

// 上传文件(以路径方式)
NSString*  fileName = @"initscreen.jpg";
NSString* strPath = [[NSBundle mainBundle] pathForResource:@"initscreen" ofType:@"jpg"];
    
[_fileClient uploadWithKeyName:fileName filePath:strPath mimeType:@"image/jpeg" progress:^(NSProgress * _Nonnull progress) {
        
    } uploadHandler:^(UFError * _Nullable ufError, UFUploadResponse * _Nullable ufUploadResponse) {
    if(!ufError){
    	// 你的上传成功逻辑
	   return;
    }
    // 根据ufError处理失败信息
    }];

服务器签名

特别强调:我们推荐使用服务器端签名。 服务器签名示例代码地址ufile-sdk-auth-server,你可以直接将其部署到服务器上,配置好参数后,在移动端使用。

Demo程序

在demo程序中,我们演示了文件操作的所有功能,你可以在本工程中查看其具体流程。此外,为了能更好地理解和使用UFile SDK,我们还提供了UFileSDKDemo说明文档

常见问题

  • iOS 9+强制使用HTTPS。使用Xcode创建的项目默认不支持HTTP,因此需要在project build info 中添加NSAppTransportSecurity,在NSAppTransportSecurity下添加NSAllowsArbitraryLoads,将其值设置为YES,如下所示。

版本记录

UFileSDK发行历史

联系我们

许可证

Apache License 2.0