Мне нужно создать проект, в котором пользователи будут входить в систему и загружать некоторые изображения и видео, и это должно быть так, что загруженные файлы должны быть видны только загрузчику или администратору сайта.Что является самым элегантным способом ограничить доступ пользователей к содержимому других пользователей?
I main Node.js, поэтому я попытался использовать экспресс-средние файлы, чтобы ограничить медиа-файлы пользователем, но мне стало известно, что это не лучший способ справиться с этим, так как выражение не подходит для рендеринга статический контент.
Вот несколько вариантов я могу думать после некоторых сеансов Google
- Amazon S3 ведро, где каждый пользователь получает свои собственные папки/разрешения и файлы размером не в этом (но файлы действительно частный, когда у нас есть url)
- Создайте временный URL-адрес файлов, используя предварительно подписанные URL-адреса из ведра S3 (файл будет открыт в течение 20 минут, я не хочу этого)
- Ограничить доступ к Nginx (снова я не знать, может ли Nginx получить доступ к базе данных и подтвердить подлинность полученного запроса)
- Использование GridFS с mongoDB? (я, вероятно, не буду использовать это, но хочу узнать, может ли это быть решением)
есть ли другой способ сделать это?
Ваш контент не является статичным, если он зависит от того, кто вошел в систему. Самый простой способ - написать собственный код, который проверяет права, а затем загружает файл с диска. Нет ничего плохого в написании собственного кода загрузки файла в node.js или на любом другом языке.Вы должны беспокоиться о производительности ** только **, когда это становится проблемой. – freakish