node.js - 使用配置文件初始化节点 aws
问题描述
我正在尝试从S3 Bucket读取,目前我有代码:
var AWS = require('aws-sdk');
AWS.config.update({accessKeyId: 'myAccesID', secretAccessKey: 'superRandomSecretKey', region: 'us-west-2'});
var s3 = new AWS.S3();
var params = {
Bucket: 'my-bucket',
Delimiter: '/'
}
s3.listObjects(params, function (err, data) {
if(err)throw err;
console.log(data);
});
但是我明白Access Denied
了,我知道我的命名配置文件aws cli
有效,因为我可以使用以下命令列出我的文件:
aws s3 ls s3://my-bucket --recursive --profile my-named-profile
那么,如何使用命名配置文件aws
初始化我的实例?
解决方案
从实例访问 S3 的推荐方法是通过Amazon EC2 的 IAM 角色。
基本角色可能只包含 AWS 托管策略AmazonS3ReadOnlyAccess
:
将角色附加到您的实例后,您无需执行任何特殊操作aws-sdk
即可使用它。SDK会自动识别它。因此,您可能是:
var AWS = require('aws-sdk');
var s3 = new AWS.S3();
var params = {
Bucket: 'my-bucket',
Delimiter: '/'
}
s3.listObjects(params, function (err, data) {
if(err)throw err;
console.log(data);
});
推荐阅读
- java - 是否可以将 javax.resource.spi.ManagedConnection 加入 Atomikos 的 JTA 事务管理器
- docker - 有没有办法用交互式终端启动 Docker 容器?
- visual-studio - docker 与 Visual Studio 2019 .net core 的基本使用
- angular - 角度拦截器处理 [object,object]
- web-scraping - 当我在输入字段中输入一些文本并在 Puppeteer 中按 Enter 键时,WaitForSelector 不起作用
- javascript - 如何在循环Vue中为每个孩子设置不同的状态变量
- php - FFMPEG 在终端中工作,但不在 php 脚本中
- selenium - Python - 无法从带有嵌入脚本的网页中获取所有文本 - Selenium、ChromeDriveManager、BS、requests_html
- php - 如何更改 Maatwebsite 包(LaravelExcel)中的关闭以导出不带双引号的数据
- vba - 如何在 VBA 中复制没有数字的 MS-Word“列表段落”文本字符串