如何使用Nodejs验证AWS S3存储桶详细信息是否有效?

时间:2018-01-05 09:34:40

标签: node.js amazon-s3

在我的应用程序中有一个表单,该用户应该输入他们的AWS S3详细信息。在保存详细信息之前,我必须检查帐户是否正确。我正在使用Node js,mongodb,Angular js构建此应用程序。

更新 aws s3的详细信息是

{
       "aws": {
        "key": "",
        "secretkey": "",
        "region": "",
        "bucket_name": ""
    }

3 个答案:

答案 0 :(得分:2)

使用AWS Javascript SDK,您应该使用构造函数中提供的凭据发出headBucket请求。

const AWS = require('aws-sdk');
const s3 = new AWS.S3({ credentials, region });

s3.headBucket({
  Bucket: "examplebucket"
}, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
})

https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#headBucket-property

如果请求成功,您可以访问。

答案 1 :(得分:0)

如果您拥有用户凭据,则可以使用aws-sdk作为节点模块。

在sdk config中设置凭据,并使用S3 API验证给定的存储分区。

  

npm install aws-sdk

var AWS = require('aws-sdk');
AWS.config = new AWS.Config();
AWS.config.accessKeyId = "accessKey";
AWS.config.secretAccessKey = "secretKey";
AWS.config.region = "region";

var s3 = new AWS.S3();

您可以参考site以获得更好的理解

答案 2 :(得分:0)

您可以尝试使用aws s3 sdk制作s3客户端,然后尝试调用您的应用需要的方法。例如,如果您需要在提供的存储桶中创建一个对象,那么只需尝试制作测试对象并查看它是否有效。您可以传递存储的凭据,如下面的链接: https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-json-file.html

https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-credentials-node.html

const AWS = require('aws-sdk');
const fs = require('fs');

AWS.config.update({ accessKeyId: '...', secretAccessKey: '...' });
//make sure you pass proper credentials
const s3 = new AWS.S3();
fs.readFile('test-file.txt', function (err, data) {
  if (err) { throw err; }
  var base64data = new Buffer(data, 'binary');
  const params = {
    Bucket: '...bucket-name-here...',
    Key: 'test-object.txt',
    Body: base64data
  };
  s3.putObject(params, function(err, data) {
    //check error or data to see if you have proper permissions.
  });
});

另请参阅putObject方法的这些示例: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putObject-property https://gist.github.com/homam/8646090