Разрешить вошедшим в систему пользователям просматривать и загружать файлы (около 250 МБ), для которых обычно 403 доступа запрещены - PullRequest
0 голосов
/ 20 августа 2011

Я создаю веб-сервер из запасного компьютера в моем доме (с Ubuntu Server 11.04) с целью использования его в качестве диска для обмена файлами, к которому также можно получить доступ через Интернет.Очевидно, я не хочу, чтобы кто-то мог загрузить некоторые из этих файлов, тем более что некоторые из них были бы в диапазоне 250-750 МБ (видеофайлы, архивы и т. Д.).Поэтому я буду внедрять систему входа пользователей с помощью PHP и MySQL.

Я провел некоторые исследования здесь и на других сайтах, и я понимаю, что хорошим способом было бы хранить эти файлы вне публичного каталога (например / var / private vs. / var / www).Затем, когда файл запрашивается вошедшим в систему пользователем, выдаются соответствующие заголовки (вероятно, application / octet-stream для автоматической загрузки), буфер очищается, и файл загружается через файл чтения.

Тем не менее, хотя я представляю, что для небольших файлов, таких как документы, изображения и музыкальные файлы, это будет очень просто, будет ли это возможным для больших файлов, о которых я упоминал?Альтернативный метод я пропустил, я все уши.Я попытался установить для папок разрешения 750 и аналогичные, но я все еще мог просматривать файл через обычный HTTP в своем браузере, как если бы меня считали частью группы (и когда я устанавливал разрешения, чтобы не получить доступ к файлутакже не может PHP).

Дерьмо, пока я в этом, какие-нибудь советы, позволяющие людям загружать большие файлы через PHP?Или это должно быть сделано через FTP?

Ответы [ 3 ]

1 голос
/ 20 августа 2011

Вы хотите заголовок X-Sendfile.Он проинструктирует ваш веб-сервер обслуживать определенный файл из вашей файловой системы.

Прочтите об этом здесь: Использование X-Sendfile с Apache / PHP

0 голосов
/ 20 августа 2011

Упомянутый вами солутон является наилучшим из возможных, когда система учетных записей обрабатывается через PHP и MySQL. Если вы хотите сохранить его в стороне от PHP и позволить серверу выполнять свою работу, вы можете защитить каталог паролем через файл .htaccess. Таким образом, файлы не будут проходить через PHP, но, честно говоря, вам не о чем беспокоиться. Я рекомендую вам пойти по вашему методу.

0 голосов
/ 20 августа 2011

Это может действительно стать проблемой для больших файлов.

Разве нельзя просто использовать FTP для этого?

HTTP на самом деле не предназначен для больших файлов, но FTP есть.

...