0

我目前正在使用 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);
}
4

0 回答 0