【问题标题】:AWS FileSystemCredentials is not a constructorAWS FileSystemCredentials 不是构造函数
【发布时间】:2018-08-17 12:34:50
【问题描述】:

我正在尝试加载 JSON 配置文件以保护我的 AWS 密钥

a.FileSystemCredentials is not a constructor
at constructor.loadFromPath(aws - sdk.min.js: 46)

这个错误使我无法使用AWS.config.loadFromPath('../../s3.config.json');

当我使用未受保护的AWS.config.update([json]); 时它工作正常,其中json 是实际的 jsonData

app.js:

AWS.config.loadFromPath('../../s3.config.json');
var hub = new AWS.S3({ params: {Bucket: 'mybucket'} });

s3.config.json

{ "accessKeyId": "keyid", "secretAccessKey": "密钥", “地区”:“us-east-1” }

【问题讨论】:

  • 问题解决了吗?因为我现在也有同样的事情发生在我身上。很感激一些方向,因为它对你来说是 3 个月 :-)
  • 感谢您提供使用 AWS.config.update 的解决方法提示!

标签: json amazon-web-services amazon-s3


【解决方案1】:

我也有同样的问题。您可能正在为浏览器加载 aws js sdk。

如您所见:https://sdk.amazonaws.com/builder/js/AWS.FileSystemCredentials 不包括在内,这就是为什么FileSystemCredentials 不是构造函数(更具体地说,它是未定义的)。看来您只能在服务器端使用 AWS.config.loadFromPath(使用类似 node.js 的东西)。

【讨论】:

  • It looks like you can only use AWS.config.loadFromPath on server side (with something like node.js). -- 做同样的事情......没有帮助
【解决方案2】:

浏览器脚本不支持从 JSON 文档加载凭据。您必须创建身份池并授予所需访问权限

const AWS = require('aws-sdk')
AWS.config.update({region: 'us-east-1'});

AWS.config.credentials = new AWS.CognitoIdentityCredentials({IdentityPoolId: 'ur pool id'});

【讨论】:

    猜你喜欢
    • 2019-02-06
    • 1970-01-01
    • 1970-01-01
    • 2022-11-29
    • 2013-12-25
    • 2021-01-11
    • 2015-12-04
    • 2018-11-29
    • 2016-12-04
    相关资源
    最近更新 更多