上传到JS中的S3数据库配置

时间:2017-06-06 20:44:35

标签: javascript amazon-web-services amazon-s3 credentials

我在AWS上很新,所以我所做的可能是非常错误的。我正在使用一个使用S3存储桶进行数据存储的应用程序。用户将无法访问此权限,因此无需用户身份验证。我只想将代码中的文件发送到服务器。我使用以下代码来尝试此操作,但我无法逃避凭据错误。任何建议将不胜感激!

var bucketName = 'my-bucket-name';
    var bucketRegion = 'us-west-2';
    function send(){

      var bucket = new AWS.S3({
          params: {
              Bucket: bucketName
          }
      });

      AWS.config.update({
        region: bucketRegion,
        accessKeyId: "my-access-key",
        secretAccessKey: "my-secret-key"
        //credentials: new AWS.CognitoIdentityCredentials({
        //  IdentityPoolId: poolID
        //})
      });

      var timestamp = new Date().getTime()/1000;
      var canvas = document.getElementById('canvas');
      var data = canvas.toDataURL();
      if (data) {
            //Object key will be facebook-USERID#/FILE_NAME
            var objKey = "test-"+timestamp;
            var params = {
                Key: objKey,
                ContentType: data.type,
                Body: data,
                ACL: 'public-read'
            };
          bucket.putObject(params, function (err, data) {
              if (err) {
                  console.log('ERROR: ' + err);
              } else {
                  listObjs();
              }
          });
      } else {
          console.log('Nothing to upload.');
      }
  }

编辑:我得到的错误的确切文字:

错误:CredentialsError:配置中缺少凭据

1 个答案:

答案 0 :(得分:0)

如果您的代码托管在Lambda中,则可能是您没有设置允许两个服务相互通信的策略。

我会考虑在这里管理这些政策:

http://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html