我们想使用 Javascript AWS SDK 将文件上传到 S3,但根本不使用凭证。使用凭据上传有效
我们有一个存储桶,它拥有任何可以上传和下载文件的权限,当我尝试上传时出现此错误
message: "No credentials to load"
我的代码:
var bucket = new AWS.S3({params: {Bucket: 'bucketName'}});
var params = {Key: 'data.txt', Body: "kkkkkkkkkkkk"};
bucket.putObject(params, function (err, data) {
alert(err)
});
最佳答案
如果您已经为所有用户设置了读/写权限,并且您的存储桶的 cors 配置允许 PUT 请求,您应该能够简单地使用 ajax 来完成:
function httpReq(method, url, data, successCB, errorCB) {
var xhr = new XMLHttpRequest();
xhr.addEventListener('load', function () {
if (xhr.status == 200) {
successCB(xhr.response);
} else {
errorCB({status: xhr.status, response: xhr.response});
}
});
xhr.open(method, url, true);
xhr.send(data);
}
httpReq('PUT', 'http://yourBucket.s3.amazonaws.com/yourKey', file, function (response) {
console.log('Upload Successful', response);
}, function (error) {
console.error(error);
});
关于javascript - 如何在没有客户端javascript凭据的情况下将文件上传到s3公共(public)存储桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25722419/