获取文件临时链接

查看 llm.txt

最后一次编辑于 2026-08-24

用云文件 ID 换取真实链接,公有读的文件获取的链接不会过期,私有的文件获取的链接默认 24 小时有效期,可以自己设定。

一次最多取 50 个。

本文档适用于公众号 H5 中使用,如果你不是公众号 H5,请移步适合的文档

请求参数

字段 说明 数据类型 默认值 必填
fileList 云文件 ID 列表 Object - 是
config 配置 Object - 否
success 成功回调
fail 失败回调
complete 结束回调

请求参数 fileList 的结构

字段 说明 数据类型
fileID 云文件 ID String
maxAge 有效期时长,单位秒 number

config 对象定义

字段 说明 数据类型
env 使用的环境 ID,填写后忽略 init 指定的环境 String

success 返回参数

字段 说明 数据类型
fileList 文件列表 Object
errMsg 成功为 ok,失败为失败原因 String

返回参数 fileList 的结构

属性 类型 说明
fileID string 云文件 ID
tempFileURL string 临时文件路径
maxAge number 有效期时长,单位秒
status number 状态码,0 为成功
errMsg string 成功为 ok,失败为失败原因

fail 返回参数

字段 说明 数据类型
errCode 错误码 Number
errMsg 错误信息,格式 downloadFile:fail msg String

使用示例

1. Promise 风格

cloud.getTempFileURL({
  fileList: [{
    fileID: 'cloud://test.png', // 对象存储文件ID列表,最多50个,从上传文件接口或者控制台获取
    maxAge: 86400 , // 有效期时长,单位秒,默认86400
  }]
}).then(res => {
  console.log(res.fileList)
}).catch(error => {
  console.error(err)
})

// 或如下传参
cloud.getTempFileURL({
  fileList: ['cloud://test.png'] // 对象存储文件ID列表,最多50个,从上传文件接口或者控制台获取
}).then(res => {
  console.log(res.fileList)
}).catch(error => {
  console.error(err)
})

2. Callback 风格

cloud.getTempFileURL({
  fileList: [{
    fileID: 'cloud://test.png', // 对象存储文件ID列表,最多50个,从上传文件接口或者控制台获取
    maxAge: 86400 , // 有效期时长,单位秒,默认86400
  }],
  success: res => {
    console.log(res.fileList)
  },
  fail: err => {
    console.error(err)
  },
  complete: res => {
    console.log(res)
  }
})

// 或如下传参
cloud.getTempFileURL({
  fileList: ['cloud://test.png'], // 对象存储文件ID列表,最多50个,从上传文件接口或者控制台获取
  success: res => {
    console.log(res.fileList)
  },
  fail: err => {
    console.error(err)
  },
  complete: res => {
    console.log(res)
  }
})

3. 完整示例

以下示例代码写入 HTML 文件,然后在浏览器打开。

云托管不支持未登录模式,请使用以下安全实现:

  1. 使用公众号有鉴权登录方式,具体参见文档,需要已认证的服务号,订阅号不支持。
  2. 使用服务端获取 API 方式,将下载收归于业务控制,具体参见文档,开发灵活但技术要求较高。

以上两种方式都可以安全的实现操作,第1个用的是权限管控(可以配置安全规则,由平台维护),第2个是自己和业务结合,由自己维护;请根据业务需要斟酌使用!

<script src="https://web-9gikcbug35bad3a8-1304825656.tcloudbaseapp.com/sdk/1.3.0/cloud.js"></script>
<script>
  window.onload = async function () {
    window.c1 = new cloud.Cloud({
      appid: '公众号AppID', // 运行的公众号APPID
      resourceAppid: '小程序或公众号AppID', // 资源方账号APPID
      resourceEnv: '微信云托管环境ID', // 资源方云环境 ID
      traceUser: true // 记录用户访问
    });
    await window.c1.init();
    const result = await c1.getTempFileURL({
      fileList: ['cloud://test'] // 临时路径获取
    })
    console.log(result)
  }
</script>