S3GetSignedUrl不接受到期时间

时间:2017-03-06 18:53:35

标签: node.js amazon-s3 lambda aws-sdk-nodejs

我目前正在使用lambda为我的s3存储桶创建签名链接,这些链接应该有24小时的到期时间。但是,当我检查返回的链接时 - 所有到期时间都设置为15分钟。我已经将s3服务器上的CORS配置更改为86400(24小时),但似乎没有修复它。文件检索工作得很好。

我使用javascript s3 sdk执行此操作,下面是创建签名网址的代码段。我该怎么做才能让它接受过期时间?

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);
}

0 个答案:

没有答案