Я смотрю на создание веб-приложения, которое включает в себя элемент загрузки файла. Я бы хотел, чтобы пользователи могли загружать файлы любого типа и довольно большого размера (скажем, до 100 МБ). Это будет общедоступный сайт, поэтому безопасность, безусловно, очень важна.
Я довольно много гуглил в поисках ответов, но это сложно, когда я не совсем точно знаю, что ищу.
Мой опыт в основном связан с PHP, но я понимаю, что PHP не считается лучшим, когда дело доходит до загрузки файлов, поэтому я с удовольствием посмотрю на другие языки, если это необходимо. Хотя, если можно найти достойное решение с использованием PHP, это было бы предпочтительнее.
Поскольку у меня нет опыта работы с такими проектами, я также совершенно не знаю, какие настройки сервера требуются для такого приложения.
Я выдумал несколько идей, но готов отказаться от них, если неоправданно:
- Я бы хотел использовать Amazon S3 для хранения файлов, если это возможно (чтобы уменьшить нагрузку на сервер)
- Я бы хотел иметь возможность переименовывать файлы после загрузки
- Я рассматриваю Uploadify (uploadify.com) для клиентской стороны
По сути, представьте, что я хотел создать приложение для отправки файлов, например wetransfer.com или yousendit.com, и вы поймете общую идею.
Я знаком со всеми обычными проблемами загрузки файлов PHP (проверка mime-типов, upload_max_filesize, memory_limit и т. Д. И т. Д.), Охватываемыми 99% постов в Интернете по этой теме, но, очевидно, этот проект проходит неплохо за пределы обычного сценария загрузки аватара.
Я знаю, что это масштабная тема, и я, очевидно, не ожидаю, что кто-нибудь представит мне волшебное решение, но в основном я ищу некоторые подсказки, с чего начать. Кто-нибудь может порекомендовать какие-нибудь хорошие книги, статьи или веб-сайты, где я могу лучше понять требования задачи? Охватывает все от программирования до требований к серверу? Даже если это просто список ключевых слов или фраз, которые я должен искать в Google.
Заранее спасибо!
P.S. Я не был уверен на 100%, был ли это правильный сайт StackExchange, чтобы разместить этот вопрос. Я также рассмотрел serverfault.com и webmasters.stackexchange.com. Если вы считаете, что этот вопрос лучше задать в другом месте, пожалуйста, дайте мне знать.