我目前正在使用 lambda 为我的 s3 存储桶创建签名链接,这些链接应该有 24 小时的到期时间。但是,当我检查返回的链接时 - 所有的到期时间都设置为 15 分钟。我已将 s3 服务器上的 CORS 配置更改为 86400(24 小时),但这似乎并没有修复它。不过,文件检索工作得很好。
我正在使用 javascript s3 sdk 来执行此操作,下面是创建签名 url 的一段代码。我该怎么做才能让它接受过期时间?
var EXPIRY_IN_SECONDS = 3600 * 24; // 24 hour
function createSignedDownloadUrl(options, callback) {
if (!options || !options.fileName ) {
return callback(new Error('Invalid input.'));
}
var containsSpecialChars = /[^\u0000-\u00ff]/g.test(options.fileName);
var contentDisposition;
if (containsSpecialChars) {
contentDisposition = 'inline; filename*=UTF-8\'\''+ encodeURIComponent(options.fileName);
} else {
contentDisposition = 'inline; filename="'+ options.fileName + '"; filename*=UTF-8\'\''+ encodeURIComponent(options.fileName);
}
var getObjectParams = {
Bucket: options.s3Bucket,
Key: options.s3Key,
Expires: EXPIRY_IN_SECONDS,
ResponseContentDisposition: contentDisposition,
};
s3.getSignedUrl('getObject', getObjectParams, callback);
}