簡體   English   中英

如何在瀏覽器中使用 javascript sdk 在 aws s3 存儲桶中上傳多部分文件

[英]How to upload multipart files in aws s3 bucket using javascript sdk in browser

我曾嘗試使用該功能

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
});

它獲得成功的響應包括 uploadid 但我無法在 s3 存儲桶中找到該文件。 那么還有其他方法可以從瀏覽器的javascript sdk 中分段上傳文件嗎??。 我正在使用 aws cognito 進行身份驗證。 提前致謝。

您使用的密鑰是文件名。 因此,如果正確上傳,文件應該出現在mybucket/file.name 。此外,您可以在控制台上記錄內容以查看是否有任何問題。

實際上,這是一個四步過程。 您已經調用了第一個 Api,還有三個剩余的 api 需要調用。

順序如下:

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

對於上述所有三個 api,您必須使用相同的鍵名(您在第一個 api 中使用過)和上傳 ID(您從第一個 api 的響應中獲得)

在第二個 api 中,您必須上傳您的文件以及您選擇的“partnumber”。

然后從第三個 api 調用中,您可以獲得為您的文件生成的“TagId”以及您使用的“partnumber”。

現在使用這個 TagId 和 partnumber,你必須調用最終的 api。

這樣就完成了文件上傳。

如果您使用 .upload,它將自動使用 post multipart。 並且您必須設置您的 s3 存儲桶 cors 策略以允許 POST 和 HEAD 以及 ExposureHeaders ETag

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM