cot_shaurma
@cot_shaurma
Java и всего понемногу

Как работать с файловой системой в Spring Boot?

Я нашёл несколько гайдов по этому поводу, но вот что меня волнует...

Во-первых сейчас, пока я работаю с проектом, файлы будут сохраняться мне на компьютер. Но потом, когда я загружу проект на сервер, то там же другая файловая система, другие директории и т.д. - как с этим быть? Плюс компьютер у меня на Win, а сервер скорее всего будет на Linux.

Во-вторых - а как быть с безопасностью? Как-то же надо фильтровать то, что мне загружают? А то скрипт какой-нибудь загрузят или ещё что-то. Как это вообще отслеживать?

Как отслеживать оставшееся место на диске?
  • Вопрос задан
  • 402 просмотра
Решения вопроса 1
azerphoenix
@azerphoenix Куратор тега Java
Java Software Engineer
Но потом, когда я загружу проект на сервер, то там же другая файловая система, другие директории и т.д. - как с этим быть?

Ну во-первых, как отметил коллега Dmitry Roo нужно использовать относительные пути.
Во-вторых, у вас должны быть несколько файлов конфигурации (с разными профилями). Например, для dev upload.path будет /home/Desktop/uploads, а для prod профиля будет uploads/ и т.д.

Во-вторых - а как быть с безопасностью? Как-то же надо фильтровать то, что мне загружают? А то скрипт какой-нибудь загрузят или ещё что-то. Как это вообще отслеживать?

Обычно, делают проверку MIME type, как на клиентской стороне, так и на стороне сервера.

Например, средствами js можно запретить загрузку других файлов, кроме image/* и т.д.
Тоже самое делаю на сервере. Проверяют формат загруженного файла и если он не соответствует ожидаемому MIME type, то выбрасывают исключение и удаляют файл.

Как отслеживать оставшееся место на диске?

Смотря, что подразумевается в данном случае. Если хостинг, то java.nio подойдет. А если это amazon s3 или другой сервис, то смотрите документацию к REST API.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
xez
@xez Куратор тега Java
TL Junior Roo
Но потом, когда я загружу проект на сервер, то там же другая файловая система, другие директории и т.д.

Для этого придумали относительные пути, конфигурационные файлы, симлинки и т.д...

как быть с безопасностью?
не давать пользователю загружать что попало. То что пользователь загрузил - никогда не запускать.

Как отслеживать оставшееся место на диске?

Java io
Java nio
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
16 апр. 2024, в 14:03
5000 руб./за проект
16 апр. 2024, в 13:17
5000 руб./за проект