amazonweb服务-如何在浏览器中使用javascript sdk上传aws s3 bucket中的多部分文件

amazon web services - How to upload multipart files in aws s3 bucket using javascript sdk in browser

本文关键字:s3 aws 上传 bucket 文件 多部 sdk 服务 amazonweb 浏览器 javascript      更新时间:2023-09-26

我试过使用函数

var bucket = new AWS.S3({params: {Bucket: 'mybucket'}});
var params = {Key: file.name, ContentType: file.type};
bucket.createMultipartUpload(params, function (err, data) {
    if (err) console.log(err, err.stack); // an error occurred
    else     console.log(data);           // successful response
});

它的成功响应包括uploadedid,但我在s3 bucket中找不到该文件。那么,有没有其他方法可以从浏览器的javascript sdk中多部分上传文件??。我正在使用aws cognito进行身份验证。提前谢谢。

实际上这是一个四步过程。您已经调用了第一个Api,还有三个剩余的Api需要调用。

顺序如下:

2。http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#uploadPart-财产。3.http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#listParts-财产。4.http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#completeMultipartUpload-财产。

对于以上三个api,您必须使用相同的密钥名称(您在第一个api中使用过)和上传id(您从第一个api的响应中获得的)

在第二个api中,您必须上传您的文件以及您选择的"部件号"。

然后,从第三个api调用中,您可以获得为文件生成的"TagId"以及您使用的"partnumber"。

现在,使用这个TagId和部件号,您必须调用最终的api。

这就完成了文件上传。

您使用的键是文件名。因此,如果上传正确,文件应该出现在mybucket/file.name中。此外,您可以在控制台上记录事情,看看是否有任何问题。

如果使用.upload,它将自动使用post-mopart。并且您必须将s3 bucket cors策略设置为允许POST,并且HEAD加exposedHeaders ETag