Size: a a a

2020 June 02

Ln

Larymar neosilator in learn.java
Михаил
Да, вариант. Но думал что найдется что-то красивее. В C# есть FileFormatException, правда не знаю рантайм он или какой.
там нет разницы)
источник

М

Михаил in learn.java
Larymar neosilator
там нет разницы)
Спасибо. А какие они, все проверяемые или наоборот?
источник

DC

Denis Chikanov in learn.java
Михаил
Да, все верно. Думал что это вполне стандартное исключение, которое не смог нагуглить (все что попадалось было рантайм), поэто решил спросить у сообщества.
Это вполне стандартное исключение, но джава не предлагает высокоуровневых конструкторов ХТТП-сервисов в стандартной библиотеке, а вы не сказали, какой набор библиотек/фреймворк используете, соответственно, телепаты в отпуске и не могут подсказать, что именно вам нужно.
В спеке Java EE есть BadRequestException. В спринге есть вроде как ResponseStatusException. В чем-нибудь ещё есть что-то ещё.
источник

l

lem0nify in learn.java
Михаил
Спасибо. А какие они, все проверяемые или наоборот?
В шарпе нет checked исключений.
источник

М

Михаил in learn.java
lem0nify
В шарпе нет checked исключений.
Прикольно. Буду знать. Спасибо.
источник

М

Михаил in learn.java
Denis Chikanov
Это вполне стандартное исключение, но джава не предлагает высокоуровневых конструкторов ХТТП-сервисов в стандартной библиотеке, а вы не сказали, какой набор библиотек/фреймворк используете, соответственно, телепаты в отпуске и не могут подсказать, что именно вам нужно.
В спеке Java EE есть BadRequestException. В спринге есть вроде как ResponseStatusException. В чем-нибудь ещё есть что-то ещё.
Спринг. Но мне стало очень интересно насчет хттп. Вы знает как проверить тип файла на этапе его полета по сети?
источник

Ln

Larymar neosilator in learn.java
Михаил
Спринг. Но мне стало очень интересно насчет хттп. Вы знает как проверить тип файла на этапе его полета по сети?
Я думаю это вообще невозможно
можно только тип файла
ну если для совсем задротов
вы можете выкачать первыйе байты файла и чекнуть их
источник

М

Михаил in learn.java
Larymar neosilator
Я думаю это вообще невозможно
можно только тип файла
ну если для совсем задротов
вы можете выкачать первыйе байты файла и чекнуть их
Нут так да. Только я не совсем, а только чуть-чуть, поэтому сохраняю файл в tmp, а потом tika'ой проверяю тип.
источник

DC

Denis Chikanov in learn.java
Михаил
Спринг. Но мне стало очень интересно насчет хттп. Вы знает как проверить тип файла на этапе его полета по сети?
Ну так откройте документацию спринга, там есть все эти эксепшны и вообще описание обработки HTTP-запросов и ответов. :)
Что такое "полёт по сети", простите?
источник

М

Михаил in learn.java
Denis Chikanov
Ну так откройте документацию спринга, там есть все эти эксепшны и вообще описание обработки HTTP-запросов и ответов. :)
Что такое "полёт по сети", простите?
см выше. Если вы в курсе как это делать, то поделитесь, пожалуйста, знанием.
источник
2020 June 03

l

lem0nify in learn.java
Михаил
Нут так да. Только я не совсем, а только чуть-чуть, поэтому сохраняю файл в tmp, а потом tika'ой проверяю тип.
А tika стрим на вход не принимает?
источник

DC

Denis Chikanov in learn.java
Михаил
см выше. Если вы в курсе как это делать, то поделитесь, пожалуйста, знанием.
Нет, конечно же, у вас не может быть гарантий того, что файл соответствует какому-то типу/расширению валидно и полностью, пока вы не проверите весь файл целиком (например, видео может быть битым последнюю минуту из пяти минут).
источник

М

Михаил in learn.java
lem0nify
А tika стрим на вход не принимает?
Допустим принимает. Что с ним делать после проверки?
источник

l

lem0nify in learn.java
А с какой целью вообще проверяете тип? 😅
источник

М

Михаил in learn.java
Denis Chikanov
Нет, конечно же, у вас не может быть гарантий того, что файл соответствует какому-то типу/расширению валидно и полностью, пока вы не проверите весь файл целиком (например, видео может быть битым последнюю минуту из пяти минут).
ну так да, поэтму тут спринг и сеть вообще ни при чем. думал вы знаете какие-нибудь сетевые тики, которые по первым двум байтам отгадывают.
источник

М

Михаил in learn.java
lem0nify
А с какой целью вообще проверяете тип? 😅
хороший вопрос. дайте-ка подумать...
источник

DC

Denis Chikanov in learn.java
Михаил
ну так да, поэтму тут спринг и сеть вообще ни при чем. думал вы знаете какие-нибудь сетевые тики, которые по первым двум байтам отгадывают.
Спринг тут при изначальном вопросе "как/какой эксепшн вернуть".
Отгадать тут очевидно физически невозможно.
источник

l

lem0nify in learn.java
Михаил
хороший вопрос. дайте-ка подумать...
Я, возможно, не так понял вопрос. Первое, что пришло в голову — у Вас в адресе запроса не имеется расширения файла, и Вам просто нужно определить его тип, чтобы сохранить под правильным расширением.
источник

М

Михаил in learn.java
Спринг это так, для контекста.  В принципе мы не знаем что пользователь льет на сервер и расширение тут значения не имеет. Когда он залил - нужно чекнуть. Если что-то не так - бросить ошибку (но тут есть варианты, но лучше ошибку).
источник

DC

Denis Chikanov in learn.java
Михаил
Спринг это так, для контекста.  В принципе мы не знаем что пользователь льет на сервер и расширение тут значения не имеет. Когда он залил - нужно чекнуть. Если что-то не так - бросить ошибку (но тут есть варианты, но лучше ошибку).
Ну, для надёжности можно только провалидировать весь файл, всё остальное - игры с вероятностями.
источник