US3 SDK for iOS
概要
本文档主要是 US3 (原名 UFile) SDK for iOS
的使用说明文档,下面我们从以下几个方面进行介绍:
- 目录结构
- 环境要求
- 安装使用
- 功能说明
- 常见问题
- 联系我们
目录结构
该仓库主要包括 SDK
的源码以及示例项目,示例项目包含 Objective-C
和 Swift
两个版本。
目录 | 说明 |
---|---|
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 Settings
的Other 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
,如下所示。
版本记录
联系我们
- UCloud官方网站: https://www.ucloud.cn/
- 如有任何问题,欢迎提交issue或联系我们的技术支持,我们会第一时间解决问题。