javascript - 如何在没有客户端javascript凭据的情况下将文件上传到s3公共(public)存储桶

标签 javascript amazon-web-services

我们想使用 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/

相关文章:

javascript - 如何在不了解文件内容的情况下用 javascript 解析 JSON 文件?

javascript - Angularjs - $http 成功与那时

amazon-web-services - 将角色关联到正在运行的 AWS 实例

amazon-web-services - impala - 它需要 hdfs 和名称节点吗?

amazon-web-services - 如何将 java web 应用程序部署到 AWS elastic beanstalk?

javascript - 目标 ="_blank"在某些移动设备上不工作

javascript - 通过 AJAX 请求获取图像/PNG

javascript - 使用 javaScript 和 HTML5 的图像幻灯片

amazon-web-services - 从实例内查询 EC2 标签

amazon-web-services - Cloudformation 自定义资源