Chevereto

Si alguna vez pensaste en tener un hosting de imágenes corriendo en tu servidor con un script open source que te permite modificarlo como te dé la gana y compartir con personas de todo el mundo esta experiencia… Piensas igual que nosotros.

Con esta frase se presenta el sitio en desarrollo de Chevereto , un futuro sistema libre para el alojamiento de imagenes.

chevereto’s logo

Ya deben conocer Imageshack (https://imageshack.us) o Godlike, el primero un sitio popular a nivel mundial de almacenamiento de imagenes y el segundo un sitio Chileno que a menos de un año de vida se esta popularizando en distintos paises.
Chevereto es un sistema que hace un par de meses se esta desarrollando pero que tambien hace mucho tiempo esta estancado y que ahora retomare con mucho mas animo. Espero poder tener lista una beta del sistema en menos de un mes, junto a Rodolfo Berrios (autor intelectual del asunto) y Pons (un desarrollador desmotivao’).

El sistema contara con varias caracteristicas de gran utilidad, un borrador del ToDo list es el siguiente:

Esta lista contiene en detalle que hace chevereto actualmente en GODLIKE y/o GODLIKE(lite). Esta lista tendra su foco en las comprobaciones de imagen en cuanto a razonamiento mas no en codigo. Esta lista esta en secuencia.

Equema Basico
Toma el archivo (local o remoto) y lo sube a una carpeta temporal > Realiza comprobaciones > Si se sube se mueve de lugar sino es eliminado.

– Setea el Time Zone
– Crea un conditional get (etag)
– Ve si se puede establecer conexion con SQL (caso negativo no permite usar el script).
Formulario
– Si el formulario es enviado y esta vacio: Notificacion.
– Si tiene doble info (se sube local y remota): Notificacion
– Comprueba si se esta subiendo una URL que tenga “godlike.cl” en el apartado del dominio (salvo para las imagenes en /apoyo).
UPLOADING
– Establece un filtro para la subida local (memoria):
— Comprueba la extension, no por mime por que tiene la facultad de corrergir extensiones mal puestas.
— Comprueba si el archivo no supera el maximo permitido.
– Establece un filtro para la subida remota (cURL):
— Conecta y trata de crear una imagen desde la string (asi comprueba) — Aqui deberia comprobar inmediatamente el tamaño:

$filesize = curl_getinfo($uh,CURLINFO_CONTENT_LENGTH_DOWNLOAD);

Pero esta linea no existe. Es una sugerencia 🙂

– Pasados estos filtros simples, procede a subir en un directorio temporal.
— Si es local simplemente copia de memoria a carpeta
— Si es remota baja con cURL.
– Procede a crear el MD5 y comprobar en la dB.
– Toma informacion del archivo con statinfo.
— Comprueba mime tipe (de imagenes soportadas, sin importar la extension).
— Toma mime, alto, ancho y peso. Con mime ve si es imagen, con alto y ancho ve si no esta corrupta y con peso denuevo comprueba si no se pasa. Aca seria bueno agregar una lectura de imagesize para determinar colores y cosas x que solo nos dicen si esta corrupta o si alguien le puso .jpg a un .php o algo asi.
– Si el mime es de los tipos soportados y la extension no calza, se la cambia.
– Vamos a la dB y leemos el contador de maximo de archivos por carpeta. Si supera el limite se añade +1 al contador de carpeta y se sube en la carpeta que sige. Esto es para no saturar una sola carpeta con demasiados archivos y pajear el ftp cuando sndamos sapeando.
– Limpiamos el nombre: Conservamos solo alfanumericos con minusculas. – Si el nombre es muy largo cortamos de atras para adelante para mantener la identidad.
— Vemos si existe imagen con ese nombre, de ser asi… Cortamos un poco, denuevo de atras para adelante y añadimos valores aleatorios.
— Volvemos a comprobar… Hasta que sale de ahi.
– Se hace el resimensionamiento si existe. Verifica si no sobrepasa los limites en px (16 y 1280).. Esto deberia hacerlo en el apartado del formulario, pero como el script sube igual a la temporal y le pide al usuario que arregle este error se entiende.
– Revisa si hay solamente numeros en este input, de no ser asi sube a una temporal donde el usuario luego puede arreglar su error.
– Deberia verificar si el tamaño redimensionado no pasa el maximo. Sugerencia.
– Hace el thumb.
– Finalmente, deja de trabajar y mueve a la carpeta definitiva. Añade los contadores de imagen para estadisticas y demas informacion.
– Si pasa algo mal elimina la imagen del directorio temporal de trabajo.

Basicamente eso en lo que es subir imagenes. Notese que la creacion de thums y la de redimensioamiento de imagenes conserva un respeto por las transparencias y la calidad del archivo (usando GD). Aquellas consideraciones las pueden encontrar en el index.php

A todas estas cosas que ya estan implementadas en Godlike, se le sumara el registro de usuarios y personalizacion y administracion subidas por cada usuario. Se corregiran muchas cosas, entre ellas el rendimiento y la carga en el servidor donde este funcionando el sistema. Actualmente esta programado casi de manera secuencial. La idea del nuevo desarrollo de este sistema es que sea completamente orientado a objetos, ayudando a entender y ordenar el codigo y el rendimiento.

Este sistema sera completamente OpenSource y esperamos poder lanzar la primera beta lo antes posible.

3 comentarios

  1. Excelente articulo, vayan apuntandose para la beta testing 😀

  2. suerte en el desarrollo del proyecto.

    si necesitan beta-testers aqui estamos :]

  3. Se ve prometedor el script, suerte en el desarrollo y por supuesto tb quiero ser un beta testing.

    Saludos y fuerza a los dos.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.