# 获取文件临时链接
用云文件 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个是自己和业务结合,由自己维护;请根据业务需要斟酌使用!
<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>