Tomcat. Доступ к загруженным файлам
Есть spring проект, размещённый на сервере Ubuntu, который используется для загрузки файлов. Файлы успешно загружаются, но вот получить к ним доступ по ссылке не получается. Права, которые даются файлу при загрузке: 640 Пытался изменить права доступа к папке, но безуспешно. Что надо сделать и как это сделать, чтобы можно было получить загруженный файл по ссылке?
Код загрузки файла:
File convertedFile = new File("/home/admin/web/домен/public_html/users_files/" + Objects.requireNonNull(file.getOriginalFilename()));
try {
convertedFile.createNewFile();
FileOutputStream fileOutputStream = new FileOutputStream(convertedFile);
fileOutputStream.write(file.getBytes());
fileOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
Ответы (1 шт):
Под каким пользователем tomcat запущен - под тем и файлы записаны будут. Права к папке != права к файлам. Если tomcat запущен под пользователем tomcat, то и доступ к файлам будет только у него.
640 (-rw-r-----) - у пользователя tomcat есть право на чтение и изменение, у его группы только на чтение, у остальных никаких прав нет.
644 (-rw-r--r--) - у пользователя tomcat есть право на чтение и изменение, у его группы только на чтение, у остальных есть только право на чтение.
При загрузке файла в коде java можно добавить право на чтение для всех пользователей методом setReadable:
file.setReadable(true, false);
Изменить права доступа к уже загруженным файлам в каталоге можно из ОС командой chmod:
sudo chmod 644 -Rv "/home/admin/web/домен/public_html/users_files/"
-R(--recursive) - рекурсивно-v(--verbose) - показывать изменения
Посмотреть права доступа к файлам в текущем каталоге можно из ОС командой ls:
ls -l