Прерывание загрузки в API s3 javascript - PullRequest
1 голос
/ 31 марта 2020

Я использую Javascript API для загрузки документов в Amazon S3 и хочу обработать случаи, когда загрузка в s3 прерывается. Может быть, пользователь закрывает вкладку браузера или обновляет sh страницу (в основном закрытие вкладки браузера)

Есть ли способ справиться со случаем, когда я могу отправить запрос на мой код на стороне сервера, когда пользователь aborts s3.upload.

У меня есть код ниже

    let s3Upload = s3.upload(params).on('httpUploadProgress', function(evt) {
      jQuery('.export-progress').html("Progress: "+ evt.loaded + "/" + evt.total);
    }).promise();

    s3Upload.then(function(s3data){
    //success processing
    }, function(err){
    // any error
    });

Любая помощь в этом была бы действительно полезной. Большое спасибо.

1 Ответ

1 голос
/ 31 марта 2020

Есть ли способ справиться со случаем, когда я могу отправить запрос на мой код на стороне сервера, когда пользователь прерывает s3.upload.

Не совсем. API-интерфейс Beacon можно использовать для отключения запроса, если пользователь закрывает вкладку, но как насчет случаев, когда батарея умирает, происходит сбой браузера, перезагрузка компьютера и т. Д. c.?

Обычно я справляюсь с этим одним из двух способов:

  • Настройте уведомление при добавлении объектов, чтобы можно было связать данные.
  • При успешной загрузке (на клиенте) отправьте сообщение в свой API, чтобы уведомить его об успешном выполнении.

Обратите внимание, что оба метода подвержены сбоям, поэтому у вас должно быть задание cron или что-то, что регулярно подметает неожиданные элементы в вашем ведро, если это подходит для вашего случая использования.

...