开发指南

获取临时链接

最近更新时间:2020-10-19 17:13:05

您可以使用 fileID 换取云存储空间指定文件的 https 链接(云存储提供免费的 CDN 域名)。

说明:

  • 公有读的文件获取的 https 链接不会过期,例如默认情况下的权限就是公有读,获取的链接永久有效;
  • 私有读的文件获取的 https 链接为临时链接,例如您可以结合用户身份认证和安全规则设置文件的权限为仅文件的上传创建者或管理员可读,此时只有通过了云开发身份验证的用户才有权限换取临时链接;
  • 有效期可以动态设置,超过有效期再请求临时链接时会被拒绝,保证了文件的安全;
  • 一次最多可以取 50 个,更多需分批处理。

使用 SDK 调用 getTempFileURL 方法传入文件的 fileID ,就可以换取云存储空间指定文件的 https 链接。

Web

//第一步,引入 Web SDK,
import tcb from "@cloudbase/js-sdk";

//第二步,初始化
const app = tcb.init({
  env: "your-env-id"
});

//第三步,登录认证,下面非完整代码,需选择登陆方式,具体可以参考【快速开始】-【登录与用户案例】
const auth = app.auth({
  persistence: "local" //用户显式退出或更改密码之前的30天一直有效
});

app
  .getTempFileURL({
    fileList: ["cloud://a/b/c", "cloud://d/e/f"]
  })
  .then((res) => {
    // fileList 是一个有如下结构的对象数组
    // [{
    //    fileID: 'cloud://webtestjimmy-5328c3.7765-webtestjimmy-5328c3-1251059088/腾讯云.png', // 文件 ID
    //    tempFileURL: '', // 临时文件网络链接
    //    maxAge: 120 * 60 * 1000, // 有效期
    // }]
    console.log(res.fileList);
  });

微信小程序

//需先使用 wx.cloud.init 初始化,小程序端无需再引入 SDK ,且免鉴权
wx.cloud
  .getTempFileURL({
    fileList: ["cloud://a/b/c", "cloud://d/e/f"]
  })
  .then((res) => {
    // fileList 是一个有如下结构的对象数组
    // [{
    //    fileID: 'cloud://webtestjimmy-5328c3.7765-webtestjimmy-5328c3-1251059088/腾讯云.png', // 文件 ID
    //    tempFileURL: '', // 临时文件网络链接
    //    maxAge: 120 * 60 * 1000, // 有效期
    // }]
    console.log(res.fileList);
  });

Node.js

const tcb = require("@cloudbase/node-sdk");
const app = tcb.init();

app
  .getTempFileURL({
    fileList: ["cloud://a/b/c", "cloud://d/e/f"]
  })
  .then((res) => {
    // fileList 是一个有如下结构的对象数组
    // [{
    //    fileID: 'cloud://webtestjimmy-5328c3.7765-webtestjimmy-5328c3-1251059088/腾讯云.png', // 文件 ID
    //    tempFileURL: '', // 临时文件网络链接
    //    maxAge: 120 * 60 * 1000, // 有效期
    // }]
    console.log(res.fileList);
  });