文件操作

文件上传

Storage.uploadFile(filename, bytes)

Storage.uploadFile(filename, categoryId, bytes)

参数说明

参数 类型 必填 说明
filename String Y 文件名径
bytes String Y 文件内容
categoryId String N 文件归属目录

返回 CloudFile 的属性

参数 类型 说明
path String 文件的访问路径
mimeType String 文件媒体类型
name String 文件名
mediaType String 如果文件是视频/图片,表示文件的格式
cdnPath String 文件在 path 上的名字
category FileCategory 文件归属的目录

示例代码

try {
  CloudFile avatar = Storage.uploadFile(file.getName(), "gallery", Files.readAllBytes(file.toPath()));
  user.put(User.AVATAR, avatar.getPath());
  user.save();
  // 操作成功
} catch (Exception e) {
  Log.d(TAG, e.getMessage(), e);
  // 操作失败
}

异常请参考异常

CloudFile 可用于含有 file 类型的数据表的数据操作,详细见 新增数据项

获取文件详情

Storage.file(fileId);

参数说明

参数 类型 必填 说明
fileId String Y 文件 id

示例代码

try {
  CloudFile avatar = Storage.file("user_avatar_123");
  avatar...
  // 操作成功
} catch (Exception e) {
  Log.d(TAG, e.getMessage(), e);
  // 操作失败
}

异常请参考异常

删除文件

Storage.deleteFiles(fileIds)

参数说明

参数 类型 必填 说明
fileIds String Collection Y 要删除的文件 id 列表

示例代码

try {
  Storage.deleteFiles(Arrays.asList("avatar1", "avatar2", "avatar3"));
  // 操作成功
} catch (Exception e) {
  // 操作失败
}

删除单个文件,如果权限不足,会返回 401;删除多个文件,如果权限不足,则直接跳过该文件

查询,获取文件列表

文件查询与数据表查询方法一致,但只支持以下指定字段的筛选

支持字段 类型 说明
CloudFile.ID String 文件 id
CloudFile.NAME String 文件名
CloudFile.SIZE Long 文件大小,以字节为单位
CloudFile.QUERY_CATEGORY_ID String 文件分类 id
CloudFile.QUERY_CATEGORY_NAME String 文件分类名
CloudFile.CREATED_AT Long 创建时间 (格式为 unix 时间戳)

示例代码

try {
    // 查找所有文件
    PagedList<CloudFile> all = Storage.files(null);

    Where where = new Where();
    // 查询某一文件分类下的所有文件
    where.equalTo(CloudFile.QUERY_CATEGORY_NAME, "avatars");
    // 查询文件名包含指定字符串的文件
    where.contains(CloudFile.NAME, "_middle");
    Query query = new Query();
    query.put(where);

    PagedList<CloudFile> middleAvatars = Storage.files(query);
    // 操作成功
} catch (Exception e) {
    // 操作失败
}

排序

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

支持字段 类型 说明
CloudFile.NAME String 文件名
CloudFile.SIZE Long 文件大小,以字节为单位
CloudFile.CREATED_AT Long 文件上传时间

示例代码

try {
    // 查找所有文件
    Query query = new Query().orderBy(CloudFile.CREATED_AT);
    PagedList<CloudFile> all = Storage.files(query);
    // 操作成功
} catch (Exception e) {
    // 操作失败
}

分页

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

示例代码

try {
    // 查找所有文件
    Query query = new Query().offset(10).limit(20);
    PagedList<CloudFile> pageTwo = Storage.files(query);

    // 操作成功
} catch (Exception e) {
    // 操作失败
}

图片云处理

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

// 缩放图片至 400x400
https://cloud-minapp-7894.cloud.ifanrusercontent.com/1eRuaPvwdleauqyZ.jpg!/both/400x400

// 在图片右下角添加 “知晓云” 文字水印
https://cloud-minapp-7894.cloud.ifanrusercontent.com/1eiuEUuISgOstoVZ.png!/watermark/align/southeast/text/55+l5pmT5LqRCg==

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

results matching ""

    powered by

    No results matching ""