文件

文件操作

文件上传

  1. let localPath = Bundle.main.path(forResource: "cover", ofType: "png")!
  2. FileManager.upload(filename: "datasource", localPath: filePath, categoryName: "Book", progressBlock: { progress in
  3. }) { (file, error) in
  4. }
  1. [BaaSFileManager uploadWithFilename:@"cover" localPath:localPath categoryName:@"Book" progressBlock:^(NSProgress * _Nullable progress) {
  2. } completion:^(BaaSFile * _Nullable file, NSError * _Nullable error) {
  3. }];

参数说明

参数类型必填说明
filenameStringY文件名称
localPathStringY本地资源路径
categoryNameStringN文件分类

返回结果

名称类型说明
fileFile已上传的文件,详见 数据类型 小节
errorNSError错误信息,参考错误处理和错误码

获取文件详情

  1. let fileId = "5c98b065d575a97d5f878225"
  2. FileManager.get(fileId) { (result, error) in
  3. }
  1. NString *fileId = @"5c98b065d575a97d5f878225";
  2. [BaaSFileManager get:fileId, completion:^(BaaSFile * _Nullable file, NSError * _Nullable error) {
  3. }];

参数说明

参数类型必填说明
fileIdStringY文件 id

返回结果

名称类型说明
fileFile已上传的文件,详见 数据类型 小节
errorNSError错误信息,参考错误处理和错误码

删除本文件

获取一个 File 对象实例后,该实例可以删除对应的文件,在知晓云服务器删除成功后,该本地实例并没有被 SDK 清除,建议开发自行清除。

  1. file.delete() { (success, error) in
  2. }
  1. [file delete:^(BOOL success, NSError * _Nullable error) {
  2. }];

返回结果

名称类型说明
successBool是否删除成功
errorNSError错误信息,参考错误处理和错误码

删除多个文件

  1. FileManager.delete(["5c98aed0d575****5f878224", "5c98aed0d575****6e1ace9b"]) { (success, error) in
  2. }
  1. [BaaSFileManager delete:@[@"5c98aed0d5****7d5f878224", @"5c98aed0d575****6e1ace9b"] completion:^(BOOL success, NSError * _Nullable error) {
  2. }];

参数说明

参数类型必填说明
fileIdArrayY需要删除的文件 id

返回结果

名称类型说明
successBool是否删除成功
errorNSError错误信息,参考错误处理和错误码

文件列表

查询文件

文件查询与数据表-查询方法一致,但只支持对以下指定字段进行查询。

支持字段类型说明
idString文件 id
nameString文件名
sizeInt文件大小,以字节为单位
category_idString文件分类 id
category_nameString文件分类名
created_atTimeInterval创建时间 (格式为 unix 时间戳)
  1. FileManager.find(completion: { (listResult, error) in
  2. })
  1. [BaaSFileManager findWithQuery:nil completion:^(BaaSContentList * _Nullable listResult, NSError * _Nullable error) {
  2. }];

参数说明

参数类型必填说明
queryQueryN查询条件,详见数据表 - 查询

返回结果

名称类型说明
listResultFileList文件列表,详见 数据类型 小节
errorNSError错误信息,参考错误处理和错误码

排序

文件查询排序与数据表排序方法一致,但只支持对以下指定字段进行排序

支持字段类型说明
nameString文件名
sizeInt文件大小,以字节为单位
created_atTimeInterval文件上传时间

分页

文件查询排序与数据表分页方法一致

文件分类

获取文件分类

  1. FileManager.getCategory("5ca489bb8c374f5039a8062b") {category, error in
  2. }
  1. [BaaSFileManager getCategory:@"5ca489bb8c374f5039a8062b" completion:^(BaaSFileCategory * _Nullable category, NSError * _Nullable error) {
  2. }];

参数说明

参数类型必填说明
idStringY分类 id

返回结果

名称类型说明
categoryFileCategory文件分类,详见数据类型 小节
errorNSError错误信息,参考错误处理和错误码

查询指定分类下的文件

  1. FileManager.find(categoryId: "5ca489bb8c374f5039a8****") { (result, error) in
  2. }
  1. [BaaSFileManager findWithCategoryId:@"5ca489bb8c374f5039a8****" query:nil completion:^(BaaSFileListResult * _Nullable listResult, NSError * _Nullable error) {
  2. }];

参数说明

参数类型必填说明
categoryIDStringY文件分类 ID
queryQueryN查询条件,详见数据表 - 查询

返回结果

名称类型说明
listResultFileList文件列表结果,详见 数据类型 小节
errorNSError错误信息,详见错误处理和错误码

查询文件分类

文件分类查询与数据表查询方法一致,但只支持对以下指定字段进行查询:

支持字段类型说明
idString文件分类 ID
nameString文件分类名
  1. FileManager.getCategoryList() { (result, error) in
  2. }
  1. [BaaSFileManager getCategoryListWithQuery:nil completion:^(BaaSFileCategoryList * _Nullable listResult, NSError * _Nullable) {
  2. }];

参数说明

参数类型必填说明
queryQueryN查询条件,详见数据表 - 查询

返回结果

名称类型说明
listResultFileCategoryList文件分类列表结果,详见 数据类型 小节
errorNSError错误信息,参考错误处理和错误码

排序

文件分类查询排序与数据表排序方法一致,但只支持对以下指定字段进行排序:

支持字段描述
name文件名
created_at文件创建时间

分页

文件分类列表分页与数据表分页方法一致。

图片云处理

利用 CDN 图片云处理,可以快速便捷地完成图片缩放、裁切、打水印等操作,示例如下:

  1. // 缩放图片至 400x400
  2. https://cloud-minapp-7894.cloud.ifanrusercontent.com/1eRuaPvwdleauqyZ.jpg!/both/400x400
  3. // 在图片右下角添加 “知晓云” 文字水印
  4. https://cloud-minapp-7894.cloud.ifanrusercontent.com/1eiuEUuISgOstoVZ.png!/watermark/align/southeast/text/55+l5pmT5LqRCg==

具体用法和更多功能可查看文档:如何通过图片 URL 进行图片云处理?

视频截图

  1. let params: [String: Any] = ["source": "5c4a6db320fa9c2e054c6c36",
  2. "save_as": "ios_snapshot.png",
  3. "point": "00:00:10",
  4. "category_id": "5d89b531619f0641755294b1",
  5. "random_file_link": false]
  6. FileManager.genVideoSnapshot(params) { (result, error) in
  7. }
  1. NSDictionary *params = @{
  2. @"source": @"5c4a6db320fa9c2e054c6c36",
  3. @"save_as": @"ios_snapshot.png",
  4. @"point": @"00:00:10",
  5. @"category_id": @"5d89b531619f0641755294b1",
  6. @"random_file_link": @NO };
  7. [BaaSFileManager genVideoSnapshot:params completion:^(NSDictionary<NSString *,id> * _Nullable result, NSError * _Nullable error) {
  8. }];

params参数说明

参数类型必填说明
sourceStringY视频文件的 id
save_asStringY截图保存的文件名
pointStringY截图时间格式,格式:HH:MM:SS
category_idStringN文件所属类别 ID
random_file_linkBoolN是否使用随机字符串作为文件的下载地址,不随机可能会覆盖之前的文件,默认为 true
sizeStringN截图尺寸,格式为 宽 x 高,默认是视频尺寸
formatStringN截图格式,可选值为 jpg,png, webp, 默认根据 save_as 的后缀生成

返回参数说明

参数类型说明
created_at创建时间 (格式为 unix 时间戳)
pathString路径
created_byString创建者 id
mime_typeStringmime_type 类型
media_typeString媒体类型
sizeInt文件大小
nameString文件名
statusString文件状态
referenceString引用
cdn_pathStringcdn 中保存的路径
updated_atTimeInterval更新时间 (格式为 unix 时间戳)
categoriesString文件所属类别
_idString本条记录 ID

M3U8 视频拼接

  1. let params: [String: Any] = ["m3u8s": ["5c4a699820fa9c27f14c6ddd", "5c4a685520fa9c27f14c6d48"],
  2. "save_as": "ios_concat.m3u8",
  3. "category_id": "5d89b531619f0641755294b1",
  4. "random_file_link": false]
  5. FileManager.videoConcat(params) { (result, error) in
  6. }
  1. NSDictionary *params = @{
  2. @"m3u8s": @[@"5c4a699820fa9c27f14c6ddd", @"5c4a685520fa9c27f14c6d48"],
  3. @"save_as": @"ios_concat.m3u8",
  4. @"category_id": @"5d89b531619f0641755294b1",
  5. @"random_file_link": @NO, };
  6. [BaaSFileManager videoConcat:params completion:^(NSDictionary<NSString *,id> * _Nullable result, NSError * _Nullable error) {
  7. }];

params参数说明

参数类型必填说明
m3u8sArrayY视频文件的 id 列表,按提交的顺序进行拼接
save_asStringY截图保存的文件名
category_idStringN文件所属类别 ID
random_file_linkBoolN是否使用随机字符串作为文件的下载地址,不随机可能会覆盖之前的文件,默认为 true

返回参数说明

参数类型说明
created_atTimeInterval创建时间 (格式为 unix 时间戳)
pathString路径
created_byString创建者 id
mime_typeStringmime_type 类型
media_typeString媒体类型
sizeInt文件大小
nameString文件名
statusString文件状态
referenceString引用
cdn_pathStringcdn 中保存的路径
updated_atTimeInterval更新时间 (格式为 unix 时间戳)
categoriesString文件所属类别
_idString本条记录 ID

M3U8 视频剪辑

  1. let params: [String: Any] = ["m3u8": "5c452bebfe10832bf97846c9",
  2. "include": [0, 20],
  3. "save_as": "ios_0s_20s.m3u8",
  4. "category_id": "5d89b531619f0641755294b1",
  5. "random_file_link": false]
  6. FileManager.videoClip(params) { (result, error) in
  7. }
  1. NSDictionary *params = @{
  2. @"m3u8": @"5c452bebfe10832bf97846c9",
  3. @"include": @[@0, @20],
  4. @"save_as": @"0s_20s.m3u8",
  5. @"category_id": @"5d89b531619f0641755294b1",
  6. @"random_file_link": @NO };
  7. [BaaSFileManager videoClip:params completion:^(NSDictionary<NSString *,id> * _Nullable result, NSError * _Nullable error) {
  8. }];

params参数说明

参数类型必填说明
m3u8StringY视频文件的 id
save_asStringY截图保存的文件名
category_idStringN文件所属类别 ID
random_file_linkBoolN是否使用随机字符串作为文件的下载地址,不随机可能会覆盖之前的文件,默认为 true
includeArrayN包含某段内容的开始结束时间,单位是秒。当 index 为 false 时,为开始结束分片序号
excludeArrayN不包含某段内容的开始结束时间,单位是秒。当 index 为 false 时,为开始结束分片序号
indexBoolNinclude 或者 exclude 中的值是否为 ts 分片序号,默认为 false

返回参数说明

参数类型说明
created_atTimeInterval创建时间 (格式为 unix 时间戳)
pathString路径
created_byInt64创建者 id
mime_typeStringmime_type 类型
media_typeString媒体类型
sizeInt文件大小
nameString文件名
statusString文件状态
referenceString引用
cdn_pathStringcdn 中保存的路径
updated_atTimeInterval更新时间 (格式为 unix 时间戳)
categoriesString文件所属类别
_idString本条记录 ID

M3U8 时长和分片信息

  1. FileManager.videoMeta("5c452bebfe10832bf97846c9") { (result, error) in
  2. }
  1. [BaaSFileManager videoMeta:@"5c452bebfe10832bf97846c9" completion:^(NSDictionary<NSString *,id> * _Nullable result, NSError * _Nullable error) {
  2. }];

params参数说明

参数类型必填说明
m3u8StringY视频文件的 id

返回参数说明

参数类型说明
status_codeInteger状态码
messageString返回信息
metaObject详见以下

meta 参数说明:

参数类型说明
duartionFloatm3u8 时长
pointsArray时间点

音视频的元信息

  1. FileManager.videoAudioMeta("5c452bd5fe10832af07846f1") { (result, error) in
  2. }
  1. [BaaSFileManager videoAudioMeta:@"5c452bd5fe10832af07846f1" completion:^(NSDictionary<NSString *,id> * _Nullable result, NSError * _Nullable error) {
  2. }];

params参数说明

参数类型必填说明
sourceStringY文件的 id

返回参数说明

参数类型说明
formatDictionary音视频格式信息,详见以下
streamsArraystream 列表,详见以下

format 参数说明:

参数类型说明
bitrateInt比特率
durationFloat时长
formatString容器格式
fullnameString容器格式全称

streams 参数说明:

参数类型说明
indexInt表示第几路流
typeString一般情况下, video 或 audio
bitrateInt流码率
codecString流编码
codec_descString流编码说明
durationFloat流时长
video_fpsFloat(视频流)视频帧数
video_heightInt(视频流)视频高度
video_widthInt(视频流)视频宽度
audio_channelsInt(音频流)音频通道数
audio_samplerateInt(音频流)音频采样率

数据类型

File

属性类型说明
idString文件 Id
mimeTypeString文件类型
nameString文件名
cdnPathStringcdn 路径
sizeInt文件大小
categoryFileCategory文件分类
localPathString本地路径
createdAtTimeInterval创建日期

FileCategory

FileCategory 表示文件所属的分类。

属性类型说明
IdString分类 Id
mimeTypeString文件类型
nameString分类名
filesInt该分类的文件数量
updatedAtTimeInterval更新日期
createdAtTimeInterval创建日期

FileList

FileList 表示一次查询数据库所返回的文件列表以及元数据。

属性类型说明
limitInt返回文件的最大个数
offsetInt返回文件的起始偏移值
totalCountInt文件总数,默认为 -1,表示该属性无效
nextString下一页地址,若值为 null,表示当前为最后一页
previousString上一页地址,若值为 null,表示当前为第一页
filesArray文件列表,每个元素为 File 类型

返回结果默认不包含 totalCount,如需获取该值可以在设置查询条件 Query 时,通过设置 query.returnTotalCount = true 来获取 totalCount。详见获取记录总数

FileCategoryList

FileCategoryList 表示一次查询数据库所返回的文件分类列表以及元数据。

属性类型说明
limitInt返回文件分类的最大个数
offsetInt返回文件分类的起始偏移值
totalCountInt文件分类总数,默认为 -1,表示该属性无效
nextString下一页地址,若值为 null,表示当前为最后一页
previousString上一页地址,若值为 null,表示当前为第一页
fileCategorysArray文件分类列表,每个元素为 FileCategory 类型

返回结果默认不包含 totalCount,如需获取该值可以在设置查询条件 Query 时,通过设置 query.returnTotalCount true 来获取 totalCount。详见获取记录总数