Javascript AWS S3 SDK:中止正在进行的putObject上载
我目前正在使用putObject将文件上载到S3存储桶Javascript AWS S3 SDK:中止正在进行的putObject上载,javascript,amazon-web-services,amazon-s3,aws-sdk,Javascript,Amazon Web Services,Amazon S3,Aws Sdk,我目前正在使用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 percentC
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'
的对象中似乎没有abort()
函数,所以我想知道这是否只是与AWS SDK的旧版本相关联。如果是这样,正确的处理方法是什么?我在Amazon网站上阅读了一些文档,其中有一个名为abortMultipartUpload的方法,但是这个方法需要一个UploadId,我不知道如何从我的putObject
函数中检索它。如何在'send'
回调之前检索带有UploadID的响应
谢谢你的帮助
-MichaelS3 PUTObject API不是一个多部分请求。当您使用createmultipartpload
启动多部件请求时,需要或可以使用abortMultipartUpload
或completeMultipartUpload
。createmultiportupload
API的响应返回uploadId
值
createMultipartUpload(参数={},回调)⇒ AWS.Request启动一个
多部分上载并返回上载ID。注意:启动
多部分上传和上传一个或多个部分,您必须
完成或中止多部分上载以停止充电
用于存储上传的部件
多部分上传步骤:-
1) 多部分上传启动-APIcreateMultipartUpload
2) 部件上传-API是upload
或uploadPart
3) 多部分上传完成(或中止)-APIabortMultipartUpload
或completeMultipartUpload
S3 PUTObject API不是多部分请求。当您使用createmultipartpload
启动多部件请求时,需要或可以使用abortMultipartUpload
或completeMultipartUpload
。createmultiportupload
API的响应返回uploadId
值
createMultipartUpload(参数={},回调)⇒ AWS.Request启动一个
多部分上载并返回上载ID。注意:启动
多部分上传和上传一个或多个部分,您必须
完成或中止多部分上载以停止充电
用于存储上传的部件
多部分上传步骤:-
1) 多部分上传启动-APIcreateMultipartUpload
2) 部件上传-API是upload
或uploadPart
3) 多部分上传完成(或中止)-APIabortMultipartUpload
或completeMultipartUpload