Skip to content

Latest commit

 

History

History
230 lines (180 loc) · 6.08 KB

storage.md

File metadata and controls

230 lines (180 loc) · 6.08 KB

存储

简单用法

下面所有的方法均已挂载到 TCB 类,可以直接使用,如:

import com.tencent.tcb.TCB;

TCB tcb = new TCB("envName", context);
tcb.storage.uploadFile();

等价于

import com.tencent.tcb.storage.StorageService;

StorageService storage = new StorageService("envName", context);
storage.uploadFile();

上传文件

  • public void uploadFile(String cloudPath, File file, TcbStorageListener listener)
  • public void uploadFile(String cloudPath, String filePath, TcbStorageListener listener)

请求参数

字段 类型 必填 说明
cloudPath String 文件的绝对路径,包含文件名。例如 foo/bar.jpg、foo/bar/baz.jpg 等,不能包含除[0-9 , a-z , A-Z]、/、!、-、_、.、、* 和中文以外的字符,使用 / 字符来实现类似传统文件系统的层级结构。查看详情
filePath String 上传文件本地路径
file File 上传的文件
listener TcbStorageListener 上传状态监听器

TcbStorageListener

interface TcbStorageListener {
    // 请求成功
    void onSuccess(JSONObject result);
    // 请求失败
    void onFailed(TcbException e);
    // 传输进度
    void onProgress(int progress);
}

示例代码

StorageService storage = new StorageService("envName", context);
storage.uploadFile("txt/data.txt", filePath, new TcbStorageListener() {
    @Override
    public void onSuccess(JSONObject result) {
        Log.d(LogTag, result.toString());
        String requestId = result.optString("requestId");
        fileId = result.optString("fileId");
    }
    @Override
    public void onProgress(int progress) {
        // 上传进度
    }
    @Override
    public void onFailed(TcbException e) {
        // 上传失败
    }
});

下载文件

public void downloadFile(String fileId, String tempFilePath, TcbStorageListener listener)

请求参数

字段 类型 必填 说明
fileId String 要下载的文件 ID
tempFilePath String 要下载的文件的存储路径
listener TcbStorageListener 下载文件状态监听函数

TcbStorageListener

interface TcbStorageListener {
    // 请求成功
    void onSuccess(JSONObject result);
    // 请求失败
    void onFailed(TcbException e);
    // 传输进度
    void onProgress(int progress);
}

示例代码

StorageService storage = new StorageService("envName", context);
storage.downloadFile(
    fileId,
    filePath,
    new TcbStorageListener() {
        @Override
        public void onSuccess(JSONObject result) {
            // result 为 null
        }
        @Override
        public void onProgress(int progress) {
            // 下载进度
        }
        @Override
        public void onFailed(TcbException e) {
            // 下载错误
        }
    }
);

删除文件

public JSONObject deleteFile(String[] fileList)

请求参数

字段 类型 必填 说明
fileList String[] 要删除的文件 ID 组成的数组

响应参数

字段 类型 必填 说明
code String 状态码,操作成功则不返回
message String 错误描述
fileList JSONArray[JSONObject<code, fileID>] 删除结果组成的数组
requestId String 请求序列号,用于错误排查

fileList

字段 类型 必填 说明
code String 删除结果,成功为 SUCCESS
fileID String 文件ID

示例代码

String fileId = "xxx";
String[] fileList = {fileId};
StorageService storage = new StorageService("envName", context);

try {
    JSONObject res = storage.deleteFile(fileList);
    String requestId = res.optString("requestId");
    JSONArray resFileList = res.getJSONArray("fileList");
    JSONObject file = resFileList.getJSONObject(0);
    String code = file.getString("code"); // code == "SUCCESS"
} catch (TcbException e) {
    // 异常
} catch (JSONException e) {
    // JSON 解析失败
}

获取文件临时下载链接

  • public JSONObject getTempFileURL(String[] fileList)
  • public JSONObject getTempFileURL(ArrayList<FileMeta> fileList)

请求参数

字段 类型 必填 说明
fileList String[] 要下载的文件的 fileId 组成的数组
fileList ArrayList 下载的文件信息组成的数组

FileMeta

字段 类型 必填 说明
fileID String 要下载的文件的 fileId
maxAge Int 临时下载链接的有效时间,单位:秒(S)

响应参数

字段 类型 必填 说明
code String 状态码,操作成功则不返回
message String 错误描述
fileList JSONArray[JSONObject<fileID, tempFileURL>] 下载文件的临时 URL 数组
requestId String 请求序列号,用于错误排查

fileList

字段 类型 必填 说明
code String 获取文件下载链接结果,成功为 SUCCESS
fileID String 文件ID
tempFileURL String 文件临时下载链接
download_url String 文件临时下载链接

示例代码

String fileId = "xxx";
String[] fileList = {fileId};
StorageService storage = new StorageService("envName", context);

try {
    JSONObject res = storage.getTempFileURL(fileList);
    String requestId = res.optString("requestId");
    JSONArray resFileList = res.getJSONArray("fileList");
    JSONObject file = resFileList.getJSONObject(0);
    String tempFileURL = file.getString("tempFileURL"); // 临时下载链接
} catch (TcbException e) {
    // 失败
} catch (JSONException e) {
    // JSON 解析错误
}