Sardine put (String, InputStream) помещает пустой файл на сервер - PullRequest
0 голосов
/ 14 июня 2019
  • Версия сардины: 5.8
  • Java 1.8

(актуально для любых перезаписей зависимостей?)

  • Проект Spring Boot 2.1.2
  • Tomcat9.0.14

Я могу подключиться к своему Серверу (Nextcloud) через Sardine.Кроме того, выполненный put -call влияет на сервер, так как он помещает ожидаемый файл в правильный каталог.Но, как указано в заголовке, файл пуст (0 байт).Также нет исключения клиента.

, работающий с put(String, byte[]), работает должным образом, и Файл на сервере работает полностью.Но я не хочу ограничиваться максимальным размером файла byte[Integer.MAX-5].

Следующий код работает, а это значит, что речь не идет о ssl или каких-либо других вещах, связанных с подключением

File file = new File(filePath);
byte[] data = new byte[(int) file.length()];
FileInputStream stream = new FileInputStream(file);
int readedBytes = stream.read(data);
if (readedBytes == file.length()) {
   client.put(remotePath, data);
}

Этот код НЕ работает

File file = new File(filePath);
client.put(remotePath, new FileInputStream(file));

На сервере Nextcloud я получаю следующую запись в журнале:

"Exception":"Sabre\\DAV\\Exception\\BadRequest","Message":"expected filesize 240823 got 0"

Мне кажется, что что-то идет не так при копировании содержимого входного потока в фактическийhttp out stream.Поскольку заголовки, кажется, имеют правильный размер байта, как мы видим в журнале сервера, но фактическое содержимое равно нулю.

У кого-нибудь еще были проблемы с этим?Я что-то пропустил?Спасибо за любые советы и помощь!

...