繁体   English   中英

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

[英]How to verify AWS S3 bucket details is valid or not using Nodejs?

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

UPDATE AWS S3的详细信息是

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

使用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

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

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

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

npm安装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();

您可以参考该网站以更好地了解

您可以尝试使用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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM