【问题标题】:Amazon S3 upload via JS: safe credentials通过 JS 上传 Amazon S3:安全凭证
【发布时间】:2016-08-10 08:26:05
【问题描述】:

我正在尝试将视频文件上传到 AWS S3 存储桶,而无需用户通过 google 或任何方式登录(用户不必做任何事情!)This page 建议有 3 个选项:

  1. 使用 Amazon Cognito 对用户进行身份验证
  2. 使用 Web 联合身份验证用户身份
  3. 在您的应用程序中进行硬编码

第三个选项对我有用,但在生产环境中是不可接受的。 如果我理解正确的话,第一个和第二个选项都需要很多麻烦,不仅对开发人员而且对用户也是如此。

// Not safe, but working!
/*AWS.config.update({
      accessKeyId: "myaccesskey",
      secretAccessKey: "mysecretkey",
      "region": "eu-central-1"   
 });*/

 AWS.config.region = 'eu-central-1';

 var s3 = new AWS.S3();

     var params = {
         Bucket: 'mybucketname',
         Key: file.name,
         Body: file
     };
     s3.putObject(params, function (err, res) {
          if (err) {
             console.log("Error uploading data: ", err);
          } else {
             console.log("Successfully uploaded data to myBucket/myKey");
          }
     });

我也尝试从 json 文件加载凭据,但这也不起作用。

AWS.config.loadFromPath('./config.json');

这种方法的错误是:

aws-sdk-2.4.13.min.js?ver=0.0.1:5 未捕获的类型错误: n.FileSystemCredentials 不是构造函数

我需要使用服务器脚本来上传文件吗? (在我的 JS 和 S3 之间创建一个代理)

任何帮助表示赞赏。

谢谢。

编辑:有人建议我关注http://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html 通过浏览器/js 发出安全请求。也许有人试过吗?任何地方的任何JS示例?

【问题讨论】:

    标签: amazon-web-services amazon-s3


    【解决方案1】:

    发布答案(如果可以这样称呼的话),因为我注意到没有答案:我实际上使用服务器端 AWS 库来完成这项工作,并且变量被安全地存储为 ENV 变量。另外,我更改了一些功能,所以我不需要使用 JS 来完成这项工作。

    所以不需要摆弄上面提到的第一个和第二个选项。 如果有人找到上述两种方法的 JS 解决方案,我很乐意接受他们的回答。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-27
      • 2020-07-14
      • 2013-01-12
      • 1970-01-01
      • 2012-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多