我在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:配置中缺少凭据
答案 0 :(得分:0)
如果您的代码托管在Lambda中,则可能是您没有设置允许两个服务相互通信的策略。
我会考虑在这里管理这些政策:
http://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html