获取文件临时链接

查看 llm.txt

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

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

一次最多取 50 个。

本文档适用于微信小程序中使用,如果你不是微信小程序,请移步适合的文档

请求参数

字段 说明 数据类型 默认值 必填
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 风格

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

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

2. Callback 风格

wx.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)
  }
})

// 或如下传参
wx.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. 完整示例

在小程序的任何一个页面 js 替换如下代码,cloud://test.png 替换成自己存在的文件 cloudID

将在页面载入时,会自动启动获取链接任务

传入封装的获取链接方法,可以是一个 CloudID 字符串,也可以是一个数组

Page({
  async onLoad() {
    const result = await this.getTempFile('cloud://test.png',500)
    console.log(result)
  },
  /**
   * 获取微信云托管对象存储文件的临时访问地址
   * @param {*} fileID 对象存储文件ID,可以是单个fileID,也可以是ID列表
   * @param {*} time 有效时间,单位秒
   */
  async getTempFile(fileID, time = 86400) {
    const list = (typeof fileID === 'string' ? [fileID] : fileID).map(item => {
      return {
        fileID: item,
        maxAge: time,
      }
    })
    return await wx.cloud.getTempFileURL({
      fileList: list
    })
  }
})

资源复用

资源复用

如果是资源复用,需要先进行初始化,初始化过程是异步,需要在业务中加以处理

在小程序 app.js 中粘贴如下代码,记得修改相关的信息,封装 getTempFileURL 可以参考上面例子,唯一不同点就是 wx.cloud 替换,其他基本一致

App({
  logger:require('./log.js'),
  async onLaunch() {
    const c1 = new wx.cloud.Cloud({
      resourceAppid: 'wx886699112233', // 环境所属的账号appid
      resourceEnv: 'prod-weruntest', // 微信云托管的环境ID
    })
    await c1.init()
    this.cloud = c1 // 在页面js中,可以使用getApp().cloud
    this.cloud.getTempFileURL({
      fileList: ['cloud://test.png'] // 对象存储文件ID列表,最多50个,从上传文件接口或者控制台获取
    }).then(res => {
      console.log(res.fileList)
    }).catch(error => {
      console.error(err)
    })
  }
})