[英]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.