在浏览器中使用signatureUrl
方法生成用于预览或下载的文件URL。您可以通过HTML中<a>标签的download属性、Web API中的window.open等方式使用获取的文件URL。
说明
搭建STS服务的具体操作请参见开发指南中的使用STS临时访问凭证访问OSS。您可以通过调用STS服务的AssumeRole接口或者使用各语言STS SDK来获取临时访问凭证。临时访问凭证包括临时访问密钥(AccessKey ID和AccessKey Secret)和安全令牌(SecurityToken)。
获取文件的预览URL
以下代码用于获取examplebucket中exampleobject.txt文件的预览URL。
const OSS = require('ali-oss'); const client = new OSS({ // yourRegion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。 region: 'yourRegion', // 从STS服务获取的临时访问密钥(AccessKey ID和AccessKey Secret)。 accessKeyId: 'yourAccessKeyId', accessKeySecret: 'yourAccessKeySecret', // 从STS服务获取的安全令牌(SecurityToken)。 stsToken: 'yoursecurityToken', // 填写Bucket名称。 bucket: 'examplebucket', }); let url; // 填写Object完整路径。Object完整路径中不能包含Bucket名称。文件URL的有效时长默认为1800秒,即30分钟。 url = client.signatureUrl('exampleobject.txt'); console.log(url); // 设置URL的有效时长为3600,单位为秒。如果不设置有效时长,则默认值为1800。 //url = client.signatureUrl('exampleobject.txt', {expires: 3600}); //console.log(url);
获取文件的下载URL
以下代码用于获取examplebucket中exampleobject.txt文件的下载URL。URL的有效时长默认为1800秒。
const OSS = require('ali-oss'); const client = new OSS({ // yourRegion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。 region: 'yourRegion', // 从STS服务获取的临时访问密钥(AccessKey ID和AccessKey Secret)。 accessKeyId: 'yourAccessKeyId', accessKeySecret: 'yourAccessKeySecret', // 从STS服务获取的安全令牌(SecurityToken)。 stsToken: 'yoursecurityToken', // 填写Bucket名称。 bucket: 'examplebucket', }); // 配置响应头实现通过URL访问时自动下载文件,并设置下载后的文件名。 const filename = 'examplefile.txt' // 自定义下载后的文件名。 const response = { 'content-disposition': `attachment; filename=${encodeURIComponent(filename)}` } // 填写Object完整路径。Object完整路径中不能包含Bucket名称。 const url = client.signatureUrl('exampleobject.txt', { response }); console.log(url);