簡體   English   中英

AWS S3 SDK:中止正在進行的putObject上傳

[英]AWS S3 SDK: Abort a putObject upload in progress

我目前正在使用putObject將文件上傳到S3存儲桶

params = {
    Key: videoKey,
    ContentType: file.type,
    Body: file,
    ACL: "public-read"
};

req = s3.putObject(params).on('httpUploadProgress', function(evt) {
    // calculate percentage complete
    var percentComplete = Math.round(evt.loaded / evt.total * 100);

    $cancelBtn.on("click", function(evt) {
      req.abort.bind(req); // doesn't work; returns an error
    });
}).send(function(err, data) {
    // code to handle what happens after upload completes
});

我已經在多個位置閱讀過以使用req.abort()req.abort.bind(req) ,但這似乎正在返回以下錯誤:

'req.abort is not a function. (In 're.abort()', 'req.abort' is undefined)'

確實'req'似乎在其Object中沒有abort()函數,因此我想知道這是否僅與舊版本的AWS開發工具包相關。 如果是這樣,處理此問題的正確方法是什么? 我已經在亞馬遜網站上閱讀了一些文檔,以了解一種名為abortMultipartUpload的方法,但是該方法需要一個UploadId ,我無法弄清楚如何從我的putObject函數中檢索該方法。 如何在'send'回調之前檢索帶有UploadID的響應?

謝謝你的幫助!

-邁克爾

S3 PUTObject API不是多部分請求。 需要使用abortMultipartUploadcompleteMultipartUpload或在使用createMultipartUpload初始化多部分請求時使用它們。 createMultipartUpload API的響應返回uploadId值。

createMultipartUpload(params = {},回調)⇒AWS.Request啟動分段上傳並返回一個上傳ID。注意:啟動分段上傳並上傳一個或多個分段后,您必須完成或中止分段上傳才能停止獲取負責存儲上傳的零件。

分段上傳步驟:-

1) createMultipartUpload上傳啟動-API createMultipartUpload

2)零件上傳-API是upload還是uploadPart

3) abortMultipartUpload上傳完成(或中止)-API abortMultipartUploadcompleteMultipartUpload

暫無
暫無

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

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