В Java-клиенте TUS, как мне установить длину передачи, если я не знаю ее заранее ⇐ JAVA

Программисты JAVA общаются здесь
Anonymous
В Java-клиенте TUS, как мне установить длину передачи, если я не знаю ее заранее

Сообщение Anonymous »

Я использую Java-клиент TUS (io.tus.java.client.Tusupload) для загрузки большого (несколько гигабайт) файла с использованием протокола tus на мой сервер, основанный на me.desair.tus.server.TusFileUploadService .
На стороне клиента я могу сделать:

Код: Выделить всё

            TusUpload upload = new TusUpload();
upload.setSize(filelength);
И это работает, если я знаю длину файла, чего я не знаю, поскольку файл генерируется «на лету».
В спецификации протокола TUS он говорит, что я могу изначально установить размер равным 1, и как только я это узнаю, я смогу установить правильный размер.
Я пробовал это, но как только я вызываю upload.setSize( 1) повторный вызов не имеет никакого эффекта, серверная сторона всегда видит 1.
Если я оставлю первоначальный вызов setSize(), я получу исключение на стороне сервера, как оно есть отсутствие размера является нарушением протокола.
Установка правильного размера жизненно важна, потому что размер вместе с количеством байтов, полученных на стороне сервера, — это то, что отмечает конец загрузки, и теперь мой код никогда не осознавал, что весь файл был передан.
Связанный с этим вопрос заключается в том, как я могу определить на стороне сервера, что клиент умер и никогда не завершит загрузку. Я предполагаю, что, поскольку это протокол в стиле HTTP REST, все, что я могу сделать, это установить тайм-аут для передачи.

Подробнее здесь: https://stackoverflow.com/questions/791 ... it-beforeh

Вернуться в «JAVA»