Хранение файлов

Хранение файлов является важной задачей реализации программы. Каждая сдача работы студента обусловлена отправкой файла, который необходимо хранить внутри системы для его дальнейшего пользования.

Все загруженные в программу файлы должны являться ZIP-архивами, чтобы программа имела возможность распаковывать и использовать их содержимое.

Загруженные файлы используются сервисами оценщиков, чтобы проводить тестирование и оценку программного обеспечения. Необходимо также учесть, что файлы должны быть доступны и для преподавателей. Сами студенты также должны иметь возможность скачивать файлы, которые они загружали в программу, а также иметь доступ к общим файлам заданий.

Одним из наиболее простых и удобных для пользователя вариантов является использования URL адреса для скачки файла через HTTP протокол без средств аутентификации. Это также удобно использовать внутри сервисов оценщиков, так как доступ к этому файлу будет зависеть только от доступности сервера файлового хранилища.

Однако можно предположить, что использование ссылок на файлы без аутентификации может быть неприемлемо в случаях, когда необходимо ограничить доступ к файлам для определенных круг лиц. Для решения данной проблемы, возможно ограничить не доступ к самим файлам по ссылкам, а доступ к самим ссылкам. Это позволит свободно использовать файлы внутри программы (имея привилегированный доступ к ссылкам), но и ограничивает доступ к файлам для нежелательных лиц.

При этом стоит учесть, что значение ссылок на файлы играет немаловажную роль в ограничении доступа. Например, если бы какой-либо файл студента с идентификационным номером 1 хранился по адресу «SERVER_URL:/1/some_file.txt», то можно было бы предположить, по каким адресам хранятся файлы других пользователей. По этой причине в качестве ссылки на файл использовалась случайная последовательность символов.

Генерация последовательность символов осуществляется с помощью класса SecureRandom на языке Java. Длина последовательности равна 30 символам, и каждый символ может принимать одно из 37 возможных значений, что подразумевает различных комбинаций.

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

 
< Пред   СОДЕРЖАНИЕ   Загрузить   След >