本文介绍如何通过文件URL预览或下载文件(Object)。

说明 浏览器中使用signatureUrl方法生成用于预览或下载的文件URL,URL的有效时间默认为半小时,即1800s。

通过URL预览文件

以下代码用于通过URL预览文件:

const OSS = require('ali-oss');

const client = new OSS({
  // region以杭州为例(oss-cn-hangzhou),其他region按实际情况填写。
  region: '<Your region>',
  // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
  accessKeyId: '<Your AccessKeyId>',
  accessKeySecret: '<Your AccessKeySecret>',
  bucket: '<Your bucket name>',
});

let url;
// object-key表示从OSS下载文件时需要指定包含文件后缀在内的完整路径,例如abc/efg/123.jpg。
url = client.signatureUrl('object-key');
console.log(url);

// 此处以设置URL的有效时长为3600s为例,若不设置有效时长,则默认为1800s。
url = client.signatureUrl('object-key', {expires: 3600});
console.log(url);        

通过URL下载文件

以下代码用于通过URL下载文件:

const OSS = require('ali-oss');

const client = new OSS({
  region: '<Your region>',
  accessKeyId: '<Your AccessKeyId>',
  accessKeySecret: '<Your AccessKeySecret>',
  bucket: '<Your bucket name>',
});

// 配置响应头实现通过URL访问时自动下载文件,并设置下载后的文件名。
const filename = 'test.js' // filename为自定义下载后的文件名。
const response = {
  'content-disposition': `attachment; filename=${encodeURIComponent(filename)}`
}
// object-key表示从OSS下载文件时需要指定包含文件后缀在内的完整路径,例如abc/efg/123.jpg。
const url = client.signatureUrl('object-key', { response });
console.log(url);