【发布时间】:2016-08-10 08:26:05
【问题描述】:
我正在尝试将视频文件上传到 AWS S3 存储桶,而无需用户通过 google 或任何方式登录(用户不必做任何事情!)This page 建议有 3 个选项:
- 使用 Amazon Cognito 对用户进行身份验证
- 使用 Web 联合身份验证用户身份
- 在您的应用程序中进行硬编码
第三个选项对我有用,但在生产环境中是不可接受的。 如果我理解正确的话,第一个和第二个选项都需要很多麻烦,不仅对开发人员而且对用户也是如此。
// Not safe, but working!
/*AWS.config.update({
accessKeyId: "myaccesskey",
secretAccessKey: "mysecretkey",
"region": "eu-central-1"
});*/
AWS.config.region = 'eu-central-1';
var s3 = new AWS.S3();
var params = {
Bucket: 'mybucketname',
Key: file.name,
Body: file
};
s3.putObject(params, function (err, res) {
if (err) {
console.log("Error uploading data: ", err);
} else {
console.log("Successfully uploaded data to myBucket/myKey");
}
});
我也尝试从 json 文件加载凭据,但这也不起作用。
AWS.config.loadFromPath('./config.json');
这种方法的错误是:
aws-sdk-2.4.13.min.js?ver=0.0.1:5 未捕获的类型错误: n.FileSystemCredentials 不是构造函数
我需要使用服务器脚本来上传文件吗? (在我的 JS 和 S3 之间创建一个代理)
任何帮助表示赞赏。
谢谢。
编辑:有人建议我关注http://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html 通过浏览器/js 发出安全请求。也许有人试过吗?任何地方的任何JS示例?
【问题讨论】:
标签: amazon-web-services amazon-s3