在创建签名的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
});

headobject中出现以下错误。我知道headobject不支持过期。
 { [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) }

如何在headobject和getsignedurl中使用自定义过期的params?

最佳答案

这是解决问题的确切代码。如果你刚读到你收到的错误信息,这应该是不言而喻的。

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

关于node.js - 对象存在于Node.JS的AWS S3存储桶中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36456649/

10-11 14:11