LINUX.ORG.RU

PHP, File Storage, Control Access and performance


0

1

Требуется добавить возможность прикреплять файлы к приватным сообщениям. Файлы естественно может видеть только юзер которому предназначено сообщение. Очевидным решением является хранить файлы где то outside web accessible directory и после проверки php скриптом юзера в текущей сессии выдавать либо файл либо access denied. Что то типа:

<?php
/* ....... */
if (isset($_SESSION['user'])) {
  /* check user */
} else {
  exit("Access Denied!");
}
$fc = file_get_contents($file);
header("Content-Type: {$fileContentType});
echo $fc;

Встаёт вопрос оптимизации производительности. Понятно что читать большой файл в PHP с целью его последующего вывода не оптимально. Что можете предложить? Может существуют какие то готовые решения для этого.

Так же вопрос. Если информацию по всем файлам хранить в MySQL в таблице `files` а сам файл соответственно в <some_dir>/`files.id` где `files.id` - primary key из files то при большом кол-ве файлов не будет ли притормаживать. Есть ли смысл раскладывать файлы по сабкаталогам. И какую FS лучше выбрать для раздела с этими файлами что бы оптимизировать?


Встаёт вопрос оптимизации производительности. Понятно что читать большой файл в PHP с целью его последующего вывода не оптимально. Что можете предложить? Может существуют какие то готовые решения для этого.

Сто раз уже обсуждалось.

google://X-Accel-Redirect
google://контролируемое+скачивание

resurtm ★★★
()
Ответ на: комментарий от resurtm

Может уж дадите сразу конкретную ссылку т.к. я там не нашёл ничего подходящего. Нужно реализовать на чистом PHP+apache а там что то про python.

psp13
() автор топика

Что мешает прятать путь к файлу за толстым хэшем? И отдавать статически веб-сервером: http://myhost.tld/uploads/private/2263dc419d5c71f715563b5e11e8468f/photoshop-...

?

Есть ли смысл раскладывать файлы по сабкаталогам

Если будет больше тысячи-другой файлов в каталоге. Файловые системы сегодня без проблем и больше тянут, но администрировать такое становится труднее.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Идея с «толстым хешем» проста в реализации но как насчёт того что оно может кешироваться прокси серверами.

На много ли вырастет нагрузка на сервер если отдавать данные по httpS?

Подробнее какие трудности в администрировании?

psp13
() автор топика
Ответ на: комментарий от psp13

psp13

Подробнее какие трудности в администрировании?

удалите каталог с 1М файлов - узнаете.

drBatty ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.