Мне нужно создать (не загружать!), сохранить и иметь возможность загружать файл PDF с помощью приложения Play 2.0. Как я мог сделать это в Play? Я думаю сохранить файл как большой двоичный объект в базе данных MySQL, но в этом случае есть ли возможность создать файл PDF без использования файловой системы? Второй вопрос, как реализовать загрузку файла?
Файловое хранилище PlayFramework 2.0
Ответы (1)
В общем случае хранение файлов в базе данных обычно дороже и имеет некоторые недостатки. (проверьте, почему: Хранение изображений в БД - да или нет?)
С другой стороны, это также зависит от того, должны ли файлы быть защищены или они являются общедоступными документами.
Есть два решения для рассмотрения:
- если вы не беспокоитесь о безопасности, вы можете просто создавать файлы и сохранять их в какой-либо папке, чем вы можете использовать какой-либо http-сервер для его обслуживания, а в своей БД хранить только пути. Это хорошая идея, тем более, что обычно серверы создаются только для обслуживания файлов, поэтому вам не нужно изобретать велосипед.
если файлы ограничены, также храните их в файловой системе, в любом случае в какой-то необщедоступной папке, тогда вы можете вернуть
File
какResult
действия только для аутентифицированных/авторизованных посетителей с таким простым фрагментом кода (Java)public static Result serveFile(String absouteFilePath){ //some authorization... return ok(new File(absouteFilePath)); }
person
biesior
schedule
12.12.2012
Решено с хранением файлов в файловой системе и их метаданных в БД. Спасибо!
- person Jolene; 17.12.2012