AWS S3 SDK: прервать процесс загрузки объекта putObject

1

Я в настоящее время загружаю файлы в ведро 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

Теги:
amazon-web-services
amazon-s3
aws-sdk

1 ответ

0
Лучший ответ

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню