Node.js S3GetSignedUrl不接受到期时间
我目前正在使用lambda为我的s3存储桶创建签名链接,这些链接的过期时间应该是24小时。但是,当我检查返回的链接时,所有过期时间都设置为15分钟。我已经将s3服务器上的CORS配置更改为86400(24小时),但似乎还没有修复它。不过,文件检索工作非常好 我正在使用javascript s3 sdk来实现这一点,下面是创建签名url的代码片段。我该怎么做才能让它接受过期时间Node.js S3GetSignedUrl不接受到期时间,node.js,amazon-s3,lambda,aws-sdk-nodejs,Node.js,Amazon S3,Lambda,Aws Sdk Nodejs,我目前正在使用lambda为我的s3存储桶创建签名链接,这些链接的过期时间应该是24小时。但是,当我检查返回的链接时,所有过期时间都设置为15分钟。我已经将s3服务器上的CORS配置更改为86400(24小时),但似乎还没有修复它。不过,文件检索工作非常好 我正在使用javascript s3 sdk来实现这一点,下面是创建签名url的代码片段。我该怎么做才能让它接受过期时间 var EXPIRY_IN_SECONDS = 3600 * 24; // 24 hour function crea
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);
}
是
var expiration\u的赋值,单位为秒=3600*24代码>发生在此处的适当范围内?将其移动到函数内部。它看起来确实在正确的范围内,并且移动它不会改变这一点。请将getObjectParams
发送到控制台,并显示它。变量在作用域中,但在没有看到更多代码上下文的情况下,没有证据表明在您使用它时它有值。出于安全原因,我不打算完整发布getObjectParams,但expires的值绝对是它所说的值。这是否意味着您将它记录到控制台并确认了它的值?