AWS.CognitoIdentityCredentials不是构造函数

时间:2017-11-02 11:52:24

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

以下是将文件上传到s3的代码 单击上载按钮后,错误:未捕获TypeError:AWS.CognitoIdentityCredentials不是构造函数。

请帮助我理解为什么会这样以及如何解决这个错误。



<html>
<head>
    <title>AWS S3 File Upload</title>
    <script src="https://sdk.amazonaws.com/js/aws-sdk-2.1.12.min.js"></script> 
  
</head>
<body>
    <input type="file" id="file-chooser" />
    <button id="upload-button">Upload to S3</button>
    <div id="results"></div>
     <script type="text/javascript">
    AWS.config.region = 'region'; 
    AWS.config.credentials = new AWS.CognitoIdentityCredentials({
        IdentityPoolId: 'Id here' 
    });

    AWS.config.credentials.get(function(err) {
        if (err) alert(err);
        console.log(AWS.config.credentials);
    });

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

    var fileChooser = document.getElementById('file-chooser');
    var button = document.getElementById('upload-button');
    var results = document.getElementById('results');
    button.addEventListener('click', function() {

        var file = fileChooser.files[0];

        if (file) {

            results.innerHTML = '';
            var objKey = 'testing/' + file.name;
            var params = {
                Key: objKey,
                ContentType: file.type,
                Body: file,
                ACL: 'public-read'
            };

            bucket.putObject(params, function(err, data) {
                if (err) {
                    results.innerHTML = 'ERROR: ' + err;
                } else {
                    listObjs();
                }
            });
        } else {
            results.innerHTML = 'Nothing to upload.';
        }
    }, false);
    function listObjs() {
        var prefix = 'testing';
        bucket.listObjects({
            Prefix: prefix
        }, function(err, data) {
            if (err) {
                results.innerHTML = 'ERROR: ' + err;
            } else {
                var objKeys = "";
                data.Contents.forEach(function(obj) {
                    objKeys += obj.Key + "<br>";
                });
                results.innerHTML = objKeys;
            }
        });
    }
    </script>
</body>
</html>
&#13;
&#13;
&#13;

我遇到了网络错误:首先是网络故障,之后我更改了s3属性中的CORS文件,这是从网络错误中解决的

**输出:我一启动HTML页面,就会收到一条警告信息

  

ResourceNotFoundException:IdentityPool&#39; us-east-c:1abadc01-xxxx-xxxx-xxxx-xxxxxxxxxxxx&#39;未找到。   在警报上单击“确定”后,我将收到this error- this link has image of my error

**

0 个答案:

没有答案