Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services &引用;配置中缺少凭据";从Amazon S3 JavaScript SDK服务器返回_Amazon Web Services_Amazon S3 - Fatal编程技术网

Amazon web services &引用;配置中缺少凭据";从Amazon S3 JavaScript SDK服务器返回

Amazon web services &引用;配置中缺少凭据";从Amazon S3 JavaScript SDK服务器返回,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,我一直在遵循的样板代码,让CORS上传工作与我的S3帐户 我创建了一个Facebook应用程序,更改了S3存储桶的CORS配置XML,并在JavaScript代码中填入了相应的变量。但是当我试图通过我的网页上传文件时,我得到了错误:config响应中缺少凭据 有人能告诉我调试这个的正确方向吗 我的JS: var appId = '999943416325248'; var roleArn = 'arn:aws:iam::458182047307:role/s3-test'; var bucket

我一直在遵循的样板代码,让CORS上传工作与我的S3帐户

我创建了一个Facebook应用程序,更改了S3存储桶的CORS配置XML,并在JavaScript代码中填入了相应的变量。但是当我试图通过我的网页上传文件时,我得到了
错误:config
响应中缺少凭据

有人能告诉我调试这个的正确方向吗

我的JS:

var appId = '999943416325248';
var roleArn = 'arn:aws:iam::458182047307:role/s3-test';
var bucketName = 'my-bucket';
var fbUserId;

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

var fileChooser = document.getElementById('video-file-input');
var button = document.getElementById('submit-button');
var results = document.getElementById('results');

button.addEventListener('click', function () {
    var file = fileChooser.files[0];
    if(file){
        results.innerHTML = '';
        //Object key will be facebook-USERID#/FILE_NAME
        var objKey = 'facebook-' + fbUserId + '/' + 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 = 'facebook-' + fbUserId;
    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;
        }
    });
}

/*!
 * Login to your application using Facebook.
 * Uses the Facebook SDK for JavaScript available here:
 * https://developers.facebook.com/docs/javascript/gettingstarted/
 */

window.fbAsyncInit = function () {
    FB.init({
        appId: appId
    });
    FB.login(function (response) {
        bucket.config.credentials = new AWS.WebIdentityCredentials({
            ProviderId: 'graph.facebook.com',
            RoleArn: roleArn,
            WebIdentityToken: response.authResponse.accessToken
        });
        fbUserId = response.authResponse.userID;
        button.style.display = 'block';
    });
};

 // Load the Facebook SDK asynchronously
(function (d, s, id) {
    var js, fjs = d.getElementsByTagName(s)[0];
    if(d.getElementById(id)){
        return;
    }
    js = d.createElement(s);
    js.id = id;
    js.src = "//connect.facebook.net/en_US/all.js";
    fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
var-appId='99943416325248';
var ROLERN='arn:aws:iam::458182047307:role/s3测试';
var bucketName=‘我的桶’;
var-fbUserId;
var bucket=新的AWS.S3({
参数:{
Bucket:bucketName
}
});
var fileChooser=document.getElementById('video-file-input');
var-button=document.getElementById('submit-button');
var results=document.getElementById('results');
按钮。addEventListener('click',函数(){
var file=fileChooser.files[0];
如果(文件){
results.innerHTML='';
//对象键将是facebook用户ID#/文件名
var objKey='facebook-'+fbUserId+'/'+file.name;
变量参数={
关键:奥比基,
ContentType:file.type,
正文:文件,
ACL:“公共读取”
};
bucket.putObject(参数、函数(错误、数据){
如果(错误){
results.innerHTML='ERROR:'+err;
}
否则{
listObjs();
}
});
}
否则{
results.innerHTML='无需上传';
}
},假);
函数listObjs(){
var前缀='facebook-'+fbUserId;
bucket.listObjects({
前缀:前缀
},函数(错误,数据){
如果(错误){
results.innerHTML='ERROR:'+err;
}
否则{
var objKeys=“”;
数据内容forEach(函数(obj){
objKeys+=obj.Key+“
”; }); results.innerHTML=objKeys; } }); } /*! *使用Facebook登录您的应用程序。 *使用此处提供的Facebook SDK for JavaScript: * https://developers.facebook.com/docs/javascript/gettingstarted/ */ window.fbAsyninit=函数(){ FB.init({ appId:appId }); FB.登录(功能(响应){ bucket.config.credentials=new AWS.WebIdentityCredentials({ ProviderId:'graph.facebook.com', 罗兰:罗兰, WebIdentityToken:response.authResponse.accessToken }); fbUserId=response.authResponse.userID; button.style.display='block'; }); }; //异步加载Facebook SDK (功能(d、s、id){ var js,fjs=d.getElementsByTagName[0]; if(d.getElementById(id)){ 回来 } js=d.createElement; js.id=id; js.src=“//connect.facebook.net/en_US/all.js”; fjs.parentNode.insertBefore(js,fjs); }(文档“脚本”、“facebook jssdk”);
结果是Chrome阻止了我域名上的弹出窗口,因此Facebook身份验证无法处理。一旦我允许从域中弹出窗口,一切都按预期进行