[英]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不是多部分請求。 需要使用abortMultipartUpload
或completeMultipartUpload
或在使用createMultipartUpload
初始化多部分請求時使用它們。 createMultipartUpload
API的響應返回uploadId
值。
createMultipartUpload(params = {},回調)⇒AWS.Request啟動分段上傳並返回一個上傳ID。注意:啟動分段上傳並上傳一個或多個分段后,您必須完成或中止分段上傳才能停止獲取負責存儲上傳的零件。
分段上傳步驟:-
1) createMultipartUpload
上傳啟動-API createMultipartUpload
2)零件上傳-API是upload
還是uploadPart
3) abortMultipartUpload
上傳完成(或中止)-API abortMultipartUpload
或completeMultipartUpload
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.