簡體   English   中英

對象存在於Node.JS的AWS S3存儲桶中

[英]object exists in AWS S3 bucket in Node.JS

我需要在創建簽名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不支持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) }

如何在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
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM