Я вижу, что вы хотите реализовать функцию для возобновления процесса загрузки файла с предыдущей точки останова.
Как я знаю, API хранилища Azure не поддерживает функцию прямой загрузки файла с разрыва.Но, исходя из моего опыта, вы можете попытаться реализовать аналогичную функцию для использования Append Block
API AppendBlob для загрузки файла.
Вот основные этапы логического потока для загрузки с перерыва.
- Чтобы создать AppendBlob с помощью
AppendBlobURL.create
。 - Чтобы разделить поток данных на серию блоков добавления для загрузки, размер фрагмента блока добавления должен быть меньшечем или равно 4 МБ.
- Затем вы можете попытаться загрузить эти блоки добавления по частям с помощью
AppendBlobURL.appendBlock
.И вы можете отменить процесс загрузки текущего блока, если вы кэшировали предыдущие данные запроса / ответа для возобновления, которые включают x-ms-blob-append-offset
и длину содержимого. - Вы можете возобновить процесс загрузки с предыдущих кэшированных данных.непрерывно загружать следующий через
appendBlock
до завершения или отменить снова.
Надеюсь, это поможет.
Обновлено:
Вы можете попробоватьобернуть ваш Java-код для загрузки в экземпляр javax.swing.SwingWorker
, а затем вызвать SwingWorker.cancel
, чтобы отменить его.Пожалуйста, смотрите более подробную информацию из подтемы Canceling Background Tasks
из Worker Threads and SwingWorker
.