阅读(220) (13)

QQ小程序 存储

2020-07-09 15:37:39 更新

API指引

上传文件

在小程序端可调用 qq.cloud.uploadFile 方法进行上传:

qq.cloud.uploadFile({
  cloudPath: 'example.png', // 上传至云端的路径
  filePath: '', // 小程序临时文件路径
  success: res => {
    // 返回文件 ID
    console.log(res.fileID)
  },
  fail: console.error
})

上传成功后会获得文件唯一标识符,即文件 ID,后续操作都基于文件 ID 而不是 URL。

下载文件

可以根据文件 ID 下载文件,用户仅可下载其有访问权限的文件:

qq.cloud.downloadFile({
  fileID: '', // 文件 ID
  success: res => {
    // 返回临时文件路径
    console.log(res.tempFilePath)
  },
  fail: console.error
})

删除文件

可以通过 qq.cloud.deleteFile 删除文件:

qq.cloud.deleteFile({
  fileList: ['a7xzcb'],
  success: res => {
    // handle success
    console.log(res.fileList)
  },
  fail: console.error
})

更详细的 API 可参考小程序端及后端存储 API 文件。

组件支持

支持在 image、audio 等组件中传入云文件 ID

换取临时链接

可以根据文件 ID 换取临时文件网络链接,文件链接有有效期为两个小时:

qq.cloud.getTempFileURL({
  fileList: ['cloud://xxx.png'],
  success: res => {
    // fileList 是一个有如下结构的对象数组
    // [{
    //    fileID: 'cloud://xxx.png', // 文件 ID
    //    tempFileURL: '', // 临时文件网络链接
    //    maxAge: 120 * 60 * 1000, // 有效期
    // }]
    console.log(res.fileList)
  },
  fail: console.error
})

管理文件

在云开发控制台中,选择文件管理标签页,可以在此看到云存储空间中所有的文件,还可以查看文件的详细信息、控制存储空间的读写权限。

文件名命名限制

  • 不能为空
  • 不能以/开头
  • 不能出现连续/
  • 编码长度最大为850个字节
  • 推荐使用大小写英文字母、数字,即[a-z,A-Z,0-9]和符号 -,!,_,.,* 及其组合
  • 不支持 ASCII 控制字符中的字符上(↑),字符下(↓),字符右(→),字符左(←),分别对应 CAN(24),EM(25) ,SUB(26),ESC(27)
  • 如果用户上传的文件或文件夹的名字带有中文,在访问和请求这个文件或文件夹时,中文部分将按照 URL - Encode 规则转化为百分号编码。
  • 不建议使用的特殊字符: ` ^ " \ { } [ ] ~ % # \ > < 及 ASCII 128-255 十进制
  • 可能需特殊处理后再使用的特殊字符: , : ; = & $ @ + ?(空格)及ASCII 字符范围:00-1F 十六进制(0-31 十进制)以及7F(127 十进制)

组件支持

小程序组件支持传入云文件 ID,支持列表如下:

组件 属性
image src
video src、poster
cover-image src
接口 参数
getBackgroundAudioManager src
createInnerAudioContext src
previewImage urls、current