Lut*_*for 2 amazon-s3 node.js aws-sdk
我需要在创建签名 url 之前检查一个对象。我需要使用自定义过期时间。我正在使用以下代码。
var AWS = require('aws-sdk');
AWS.config.update({accessKeyId: 'YOURKEY', secretAccessKey:'YOURSECRET'});
var s3 = new AWS.S3()
params = {Bucket:'BUCKET_NAME', Key: 'TEST.pdf', Expires: 10000}
s3.headObject(params, function(err, data) {
if (err) console.log(err,err.code); // an error occurred
else
{
s3.getSignedUrl('getObject', params, function (err, url) {
if (err) {
console.log('error: ' + err);
} else {
console.log('Signed URL: ' + url);
}
});
} // successful response
});
Run Code Online (Sandbox Code Playgroud)
我在 headObject 中遇到以下错误。我知道 headObject 不支持 Expiries。
{ [UnexpectedParameter: Unexpected key 'Expires' found in params]
message: 'Unexpected key \'Expires\' found in params',
code: 'UnexpectedParameter',
time: Wed Apr 06 2016 10:14:53 GMT-0500 (CDT) }
Run Code Online (Sandbox Code Playgroud)
如何在 headObject 和 getSignedUrl 中使用自定义过期参数?
这是解决您的问题的确切代码。如果您只是阅读收到的错误消息,这应该是不言而喻的。
var AWS = require('aws-sdk');
AWS.config.update({accessKeyId: 'YOURKEY', secretAccessKey:'YOURSECRET'});
var s3 = new AWS.S3()
headParams = {Bucket:'BUCKET_NAME', Key: 'TEST.pdf'}
urlParams = {Bucket:'BUCKET_NAME', Key: 'TEST.pdf', Expires: 10000}
s3.headObject(headParams, function(err, data) {
if (err) console.log(err,err.code); // an error occurred
else
{
s3.getSignedUrl('getObject', urlParams, function (err, url) {
if (err) {
console.log('error: ' + err);
} else {
console.log('Signed URL: ' + url);
}
});
} // successful response
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5307 次 |
| 最近记录: |