文件存储

最近更新时间:2020-02-24 10:19:04

uploadFile

1. 接口描述

接口功能:上传文件到文件管理服务。
接口声明:uploadFile(object: Object): Promise<Object>

说明:

1.0.1 版本后,为了提高文件上传性能,文件上传方式修改为直接上传到对象存储,为了防止在使用过程中出现 CORS 报错,需要到 云开发控制台 用户管理>登录设置>安全域名 版块添加域名。如果已有域名出现 CORS 报错,请删除安全域名,重新添加。

2. 输入参数

字段 类型 必填 说明
cloudPath string 文件的绝对路径,包含文件名
filePath HTML upload file 要上传的文件对象
onUploadProgress function 上传进度回调
注意:

cloudPath 为文件的绝对路径,包含文件名 foo/bar.jpg、foo/bar/baz.jpg 等,不能包含除[0-9 , a-z , A-Z]、/、!、-、\_、.、、\*和中文以外的字符,使用 / 字符来实现类似传统文件系统的层级结构,详情请参阅 对象概述

3. 输出参数

字段 类型 必填 说明
code string 状态码,操作成功则不返回
message string 错误描述
fileID fileID 文件唯一 ID,用来访问文件,建议存储起来
requestId string 请求序列号,用于错误排查

4. 示例代码

promise 风格:

const tcb = require('tcb-js-sdk');

const app = tcb.init({
  env: 'xxxx-yyy'
});

const result = await app.uploadFile({
  cloudPath: 'test-admin.jpeg',
  filePath: document.getElementById('file').files[0],
  onUploadProgress: function(progressEvent) {
    console.log(progressEvent);
    var percentCompleted = Math.round(
      (progressEvent.loaded * 100) / progressEvent.total
    );
  }
});

callback 风格:

//初始化SDK实例部分代码如上
await app.uploadFile(
  {
    cloudPath: 'test-admin.jpeg',
    filePath: document.getElementById('file').files[0],
    onUploadProgress: function(progressEvent) {
      console.log(progressEvent);
      var percentCompleted = Math.round(
        (progressEvent.loaded * 100) / progressEvent.total
      );
    }
  },
  function(err, res) {}
);

getTempFileURL

1. 接口描述

接口功能:获取文件 CDN 下载链接。
接口声明:getTempFileURL(object: Object): Promise<Object>

2. 输入参数

字段 类型 必填 说明
fileList <Array>.string 要下载的文件 ID 组成的数组

fileList

字段 类型 必填 说明
fileID string 文件 ID
maxAge Integer 文件链接有效期

3. 输出参数

字段 类型 必填 说明
code string 状态码,操作成功则为 SUCCESS
message string 错误描述
fileList <Array>.object 存储下载链接的数组
requestId string 请求序列号,用于错误排查
fileList
字段 类型 必填 说明
code string 删除结果,成功为 SUCCESS
message string 错误描述
fileID string 文件 ID
tempFileURL string 文件访问链接

4. 示例代码

promise 风格:

//初始化SDK实例部分代码如上
app
  .getTempFileURL({
    fileList: ['cloud://jimmytest-088bef.jimmytest-088bef-1251059088/a|b测试.jpeg']
  })
  .then(res => {
    res.fileList.forEach((el) => {
      if(el.code === 'SUCCESS') {
        console.log(el.tempFileURL)
      } else {
        //获取下载链接失败
      }
    })
  });

callback 风格:

app.getTempFileURL(
  {
    fileList: ['cloud://jimmytest-088bef.jimmytest-088bef-1251059088/a|b测试.jpeg']
  },
  function(err, res) {}
);

deleteFile

1. 接口描述

接口功能:删除文件。
接口声明:deleteFile(object: Object): Promise<Object>

2. 输入参数

字段 类型 必填 说明
fileList <Array>.string 要删除的文件 ID 组成的数组

3. 输出参数

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

fileList

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

4. 示例代码

promise 风格:

app
  .deleteFile({
    fileList: ['cloud://jimmytest-088bef/1534576354877.jpg']
  })
  .then(res => {
    res.fileList.forEach((el) => {
      if(el.code === 'SUCCESS') { //删除成功

      } else {

      }
    })
  });

callback 风格:

app.deleteFile(
  {
    fileList: ['cloud://jimmytest-088bef/1534576354877.jpg']
  },
  function(res) {}
);

downloadFile

1. 接口描述

接口功能:下载文件到本地。
接口声明:downloadFile(object: Object): Promise<Object>

2. 输入参数

字段 类型 必填 说明
fileID string 要下载的文件的 id
tempFilePath string 下载的文件要存储的位置

3. 输出参数

字段 类型 必填 说明
code string 状态码,操作成功则不返回
message string 错误描述
fileContent Buffer 下载的文件的内容。如果传入 tempFilePath 则不返回该字段
requestId string 请求序列号,用于错误排查

4. 示例代码

promise 风格:

tcb.downloadFile({
    fileID: "cloud://aa-99j9f/my-photo.png",
    // tempFilePath: '/tmp/test/storage/my-photo.png'
}).then((res) => {

});

callback 风格:

tcb.downloadFile({
    fileID: "cloud://aa-99j9f/my-photo.png",
    // tempFilePath: '/tmp/test/storage/my-photo.png'
}, function(res) {

});
目录