Su pregunta no especificó, pero voy a suponer que tiene la intención de que esto se use para uso público (si esto es solo para uso privado, entonces no necesita ningún idioma, solo un solo directorio en su host con un index.html
para que las personas puedan explorar su directorio).
Si está destinado al uso público, el trabajo pesado será menor en el lado de la aplicación y más en el lado de la redundancia y la optimización del servidor (también conocido como “DevOps”). La aplicación se vuelve más complicada a medida que su misión se desvía del alojamiento básico de imágenes. (p. ej. ¿Desea publicar anuncios? ¿Desea que los usuarios tengan interacciones sociales? ¿Planea administrar la cuenta o simplemente usa autenticación de terceros como OpenID o FB / Google Auth?)
Su principal preocupación es que desea asegurarse de que siempre puede mostrar las imágenes que aloja y de forma rápida. La mejor manera de hacerlo es, irónicamente, no alojar las imágenes usted mismo, sino delegar ese trabajo a un CDN. El “más fácil” (para algunos valores de “fácil”) podría ser un depósito de AWS S3. Son muy confiables, aunque agregarán costos generales. Ciertamente, podría comenzar simplemente alojando las imágenes usted mismo, pero diseñaría su aplicación con el entendimiento de que tendrá que volver a factorizar eso, desde el principio (probablemente poco después del lanzamiento).
- ¿Cuál es el mejor lenguaje de programación y arquitectura para construir una aplicación escalable?
- ¿Cuál es el mejor sistema operativo para el desarrollo web?
- ¿Existe alguna herramienta que me permita crear bots y que también admita SQL y actualizaciones automáticas?
- ¿Por qué Javascript para frameworks es tan diferente de lo que un principiante aprende en Internet a través de libros y videos?
- ¿Qué es el núcleo de PHP?
Con su almacenamiento establecido, la función principal de su aplicación es solo manejar E / S con ese depósito. Tendrá que realizar la autenticación (el alojamiento de imágenes completamente anónimo se volvería abundante con el abuso), algunos controles de seguridad básicos para verificar que las personas solo carguen imágenes de un tamaño aceptable y luego una función de recuperación razonablemente reforzada. Cualquier lenguaje web, incluido PHP, puede manejar esas funciones.
Antes de comenzar algo de esto, recomiendo sentarse y evaluar:
- ¿Qué función quiero que tenga este sitio, específicamente?
- ¿Esta función ya la cumplen los sitios de la competencia y, de ser así, cuáles?
- En caso afirmativo, ¿qué características ofrecen actualmente mis competidores y cómo usan los usuarios esos sitios?
- En caso afirmativo, ¿cómo satisfará mi sitio esas demandas mejor que sus competidores y por qué los usuarios elegirán mi sitio sobre otros?
- En caso afirmativo, ¿cómo interrumpiré este mercado y lograr que la gente pruebe mi sitio sobre los demás?
- ¿Necesito monetizar mi sitio?
- En caso afirmativo, ¿qué estrategias de monetización consideraré? (esto no necesita ser completamente desarrollado y planeado, solo una discusión general para asegurar que sea factible)
- ¿Qué espero que sean mis costos generales y creo que puedo escalar mi monetización con costos? (es decir, cuanta más gente recupere imágenes de usted, más le costará, ¿su monetización podrá escalar adecuadamente?)
Se puede encontrar valor en la construcción de otro sitio dentro de un paradigma establecido (por ejemplo, “alojamiento de imágenes”) para el desarrollo personal . Es decir, si esto parece que sería un proyecto desafiante que está dentro de su nivel de habilidad para lograr (o mejor aún, más allá de su nivel de habilidad), ¡ adelante ! Constrúyalo sin la intención de desplegarlo públicamente y agréguelo a su cartera de proyectos cuando haya terminado. Ciertamente, puede obtener un valor personal de reinventar la rueda si le ayuda a comprender mejor la física y la mecánica de la construcción de la rueda.
¡Buena suerte!