Я в настоящее время загружаю файлы в ведро S3 с помощью putObject
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
. Как получить ответ с UploadID
перед UploadID
'send'
?
Спасибо за любую помощь!
-Michael
API S3 PUTObject не является многопрофильным. abortMultipartUpload
или completeMultipartUpload
требуется или может использоваться, когда вы инициируете многочастный запрос с помощью createMultipartUpload
. Ответ API createMultipartUpload
возвращает значение uploadId
.
createMultipartUpload (params = {}, callback) ⇒ AWS.Request Инициирует многостраничную загрузку и возвращает идентификатор загрузки. Примечание. После того, как вы инициируете многостраничную загрузку и выгрузку одной или нескольких частей, вы должны либо завершить, либо прервать многостраничную загрузку, чтобы прекратить получать для хранения загруженных частей.
Многостраничные шаги загрузки: -
1) createMultipartUpload
загрузки нескольких частей - API createMultipartUpload
2) Загрузка компонентов - API upload
или uploadPart
3) Завершение загрузки нескольких частей (или прерывание) - API abortMultipartUpload
или completeMultipartUpload