Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: TheEGG 89 en 20 Agosto 2012, 10:10 am



Título: ¿Que debo tener en cuenta antes de realizar un Hosting de Imágenes?
Publicado por: TheEGG 89 en 20 Agosto 2012, 10:10 am
Amigos, tengo como proyecto en mente un Hosting de Imágenes.
Me gustaría saber recomendaciones con respecto al lenguaje a utilziar, ¿cual me recomiendan?. Lo que mas despierta mi curiosidad es saber cual me conviene mas a la hora de "generar" los links correspondientes a la imágen que suba el usuario.

Agradezco su tiempo!


Título: Re: ¿Que debo tener en cuenta antes de realizar un Hosting de Imágenes?
Publicado por: @synthesize en 21 Agosto 2012, 00:55 am
Si lo haces en serio es un proyecto bastante grande, al cual tienes que dedicar mucho tiempo en pensar como sería el funcionamiento.

Me voy a ahorrar darte consejos sobre las políticas de usuarios/subida de imágenes, y te digo cosas mas técnicas.

Una cosa importante (Que hacía megaupload) para no repetir archivos, es comprobar la suma (Prueba MD5 o SHA) y si el archivo ya existe, no hace falta subirlo.

Esto tiene doble utilidad, con la suma del archivo, puedes hacer tu otra suma para generar un link único a ese archivo. Así los links no se repiten.

Lenguajes, está claro. PHP + SQL (MySQL, PostgreSQL, sqlite,. etc etc) y HTML+CSS+Js. Vamos, como casi todo.


Título: Re: ¿Que debo tener en cuenta antes de realizar un Hosting de Imágenes?
Publicado por: Luna71c0 en 21 Agosto 2012, 04:47 am
¿Que lenguaje? y en su momento pude haber dicho el que te quede mas comodo :P pero bueno creo que Daemon Freedom lo dijo bastante bien :P
Por cierto, un consejo, si es un proyecto grande y NECESITA TIEMPO, no lo abandones, dia a dia trabaja con eso


Título: Re: ¿Que debo tener en cuenta antes de realizar un Hosting de Imágenes?
Publicado por: Kase en 22 Agosto 2012, 07:47 am
tiempo, grande?   no, y no..  si lo sabes hacer en cuestion de horas lo tienes listo.. y asta aceptando subidas de imagen de distintas formas como directo de una url...


el verdadero problema es el dinero... dinero, dinero y mas dinero....  las imagenes consumen mucho trafico y espacio, ningun proveedor "shared" te permitiria subir una web de imagenes a sus servidores...

necesitarias forzosamente contratar maquinas virtuales, o servidores enteros.. echale quisas unos 15 euros por mes para que te des una idea...

y debes estar preparado para escabilizar el proyecto.. si pega, en cualquier momento deberas conciderar un cluster de computadoras, y un sistema de cache...

si lo vaz a hacer con php considera hiphop  para convertir tu php a C

auke quien me conosca sabe que lo aria directamente con python y de servidor de aplicacion tornado, y de servidor de imagenes apache...


Título: Re: ¿Que debo tener en cuenta antes de realizar un Hosting de Imágenes?
Publicado por: WHK en 22 Agosto 2012, 15:38 pm
Mira, yo hize un uploader de imagenes en php sin utilizar mysql y sin problemas de seguridad, lo hize en 30 minutos:

Index.php:
Código
  1. <?php
  2. /* Default config */
  3. $sys = array(
  4. 'db' => '.ht_dbimages', /* Database */
  5. 'self_script' => (isset($_SERVER['HTTPS']) == true ? 'https' : 'http' . '://'.$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME']),
  6. 'start' => 0, /* Bite start */
  7. 'length' => 0, /* Bites length */
  8. 'extension' => '.dat', /* File extension */
  9. 'max_length' => 2000000, /* Max upload/download file (2MB) */
  10. 'finish_poiner' => 0,
  11. 'finish_length' => 0,
  12. 'finish_extension' => 'jpg',
  13. 'totalsizedb' => 0,
  14. 'err' => false,
  15. 'headerdb' => "DBIMG\x00\x01"
  16. );
  17. /* Re-config... */
  18. if(!file_exists($sys['db']))
  19. file_put_contents($sys['db'], $sys['headerdb']);
  20. $sys['totalsizedb'] = filesize($sys['db']);
  21.  
  22. if($_FILES){
  23. /* Manage errors */
  24. if((int)$_FILES['img']['size'] > (int)$sys['max_length'])
  25. $sys['err'] = 'El archivo es demasiado grande.';
  26. if(!exif_imagetype($_FILES['img']['tmp_name']))
  27. $sys['err'] = 'El archivo no es una imágen.';
  28. /* Save file */
  29. if(!$sys['err']){
  30. $sys['finish_pointer'] = (int)$sys['totalsizedb'];
  31. $sys['finish_length'] = filesize($_FILES['img']['tmp_name']);
  32. $sys['finish_extension'] = explode('.', $_FILES['img']['name']);
  33. $sys['finish_extension'] = substr($sys['finish_extension'][count($sys['finish_extension']) - 1], 0, 5);
  34. file_put_contents($sys['db'], file_get_contents($_FILES['img']['tmp_name']), FILE_APPEND | LOCK_EX);
  35. }
  36.  
  37. }elseif(isset($_GET['data']) and (strlen($_GET['data']) > 0)){
  38. /* Split data */
  39. $data = $_GET['data'];
  40. if(str_replace('/', '', $data) != $data){
  41. $data = explode('/', $data);
  42. $data = $data[count($data) - 1];
  43. }
  44. $data = explode('_', $data);
  45. $sys['start'] = (int)$data[0];
  46. $data = explode('.', $data[1]);
  47. $sys['length'] = (int)$data[0];
  48. $sys['extension'] = $data[count($data) - 1];
  49. /* Manage errors */
  50. if($sys['length'] > $sys['max_length'])
  51. $sys['err'] = 'El archivo es demasiado grande.';
  52. if($sys['start'] < 1)
  53. $sys['err'] = 'El archivo no existe.';
  54. if(($sys['start'] + $sys['length']) > $sys['totalsizedb'])
  55. $sys['err'] = 'El archivo no existe.';
  56. $tmpf = tempnam(0, '');
  57. file_put_contents($tmpf, file_get_contents($sys['db'], NULL, NULL, $sys['start'], $sys['length']));
  58. if(!exif_imagetype($tmpf))
  59. $sys['err'] = 'El archivo no es una imágen.';
  60. /* Get file */
  61. if(!$sys['err']){
  62. header('Content-Type: image/'.substr($sys['extension'], 0, 5));
  63. header('Content-Length: '.(int)$sys['length']);
  64. /* MAX Cache */
  65. header('Last-Modified: Tue, 03 Jul 2001 06:00:00 GMT');
  66. header('Expires: Tue, 03 Jul 2500 06:00:00 GMT');
  67. echo file_get_contents($tmpf);
  68. }
  69.  
  70. }
  71. ?>
  72.  
  73. <?php if($sys['err']){ ?>
  74. Error: <?php echo $sys['err']; ?><hr />
  75. <?php }elseif((int)$sys['finish_pointer'] > 0){ ?>
  76. File saved:
  77. <a target="_blank" href="<?php echo ($outfile = dirname($sys['self_script']).'/'.(int)$sys['finish_pointer'].'_'.(int)$sys['finish_length'].'.'.$sys['finish_extension']); ?>">
  78. <?php echo $outfile; ?>
  79. </a><hr />
  80. <?php } ?>
  81. <form action="<?php echo $sys['self_script']; ?>" method="post" enctype="multipart/form-data">
  82. Image: <input type="file" name="img" /> <input type="submit" value="Upload" />
  83. </form>

.htaccess:
Código:
# MiniHostingIMG V1.0 by WHK - DrawCoders
Options -Indexes
ErrorDocument 404 "El archivo no existe <a href='javascript:history.go(-1);'>Volver</a>"
RewriteEngine on
RewriteCond %{REQUEST_URI} !(.*)index.php$
RewriteRule ^(.*)$ index.php?data=$1

Pones esos dos archivos juntos y listo!, utiliza un solo archivo como base de datos binario, aunque pese 50gb no tarda mas de 0.001 segundos en obtener los archivos ya que el puntero de php se posiciona justo sobre el byte adecuado, no necesita cargar el archivo completo, además es super util en hostings que te restringen el numero de archivos guardados como hostgator.

El archivo que el sistema creará para la base de datos se llama .ht_dbimages, hay que darle permisos de sobreescritura, por defecto los servidores apache deniegan el acceso directo gracias a la directiva por defecto de denegación de acceso a <.ht*>.


Título: Re: ¿Que debo tener en cuenta antes de realizar un Hosting de Imágenes?
Publicado por: Kase en 22 Agosto 2012, 17:54 pm
un solo archivo?! esa idea es genial... si empiezas a guardar todas las fotos en un directorio unico vas a reventar el sistema de directorios...

yo los guardaria por carpetas con año dentro carpeta mes, y dentro dia, y dentro fotos.. y eso lo serviria con apache puro.


Título: Re: ¿Que debo tener en cuenta antes de realizar un Hosting de Imágenes?
Publicado por: Luna71c0 en 22 Agosto 2012, 23:27 pm
tiempo, grande?   no, y no..  si lo sabes hacer en cuestion de horas lo tienes listo.. y asta aceptando subidas de imagen de distintas formas como directo de una url...


el verdadero problema es el dinero... dinero, dinero y mas dinero....  las imagenes consumen mucho trafico y espacio, ningun proveedor "shared" te permitiria subir una web de imagenes a sus servidores...

necesitarias forzosamente contratar maquinas virtuales, o servidores enteros.. echale quisas unos 15 euros por mes para que te des una idea...

y debes estar preparado para escabilizar el proyecto.. si pega, en cualquier momento deberas conciderar un cluster de computadoras, y un sistema de cache...

si lo vaz a hacer con php considera hiphop  para convertir tu php a C

auke quien me conosca sabe que lo aria directamente con python y de servidor de aplicacion tornado, y de servidor de imagenes apache...
Me referia al tiempo de popularización y al alcance :D


Título: Re: ¿Que debo tener en cuenta antes de realizar un Hosting de Imágenes?
Publicado por: TheEGG 89 en 28 Agosto 2012, 08:40 am
Gracias por responder!!
ya tengo a un especialista en Marketing par alo que va a ser difusión, disponemos de hasta 50 dólares al mes para Hosting, no es mucho.. pero para un comienzo va a estar bien, ya que lo vamos a utilizar un selecto grupo de usuarios (para probar su correcto funcionamiento antes de lanzarlo)

Y la idea es que a cada usuario (cuenta registrada) le corresponda una carpeta dentro del Hosting.

:-D


Título: Re: ¿Que debo tener en cuenta antes de realizar un Hosting de Imágenes?
Publicado por: WHK en 28 Agosto 2012, 15:26 pm
Si vas a guardar cada archivo en carpetas te va a salir muy costoso.


Título: Re: ¿Que debo tener en cuenta antes de realizar un Hosting de Imágenes?
Publicado por: WIитX en 28 Agosto 2012, 15:32 pm
a parte de todo eso... céntrate en un buen diseño, eso llama a mucha gente por hay muchos honstings de imágenes y que sea rápido en subir...

Podrías ponerle subida múltiple de imágenes por muchas veces es muy costoso subir imagen a imagen.

PD: ¿Sabes ya como se llamara?


Título: Re: ¿Que debo tener en cuenta antes de realizar un Hosting de Imágenes?
Publicado por: Kase en 28 Agosto 2012, 22:51 pm
me intriga saber como demonios se gana dinero con un hosting de imagenes... ( ._.)


Título: Re: ¿Que debo tener en cuenta antes de realizar un Hosting de Imágenes?
Publicado por: WIитX en 28 Agosto 2012, 22:57 pm
me intriga saber como demonios se gana dinero con un hosting de imagenes... ( ._.)

Supongo que poniendo publicidad >.<


Título: Re: ¿Que debo tener en cuenta antes de realizar un Hosting de Imágenes?
Publicado por: Kase en 28 Agosto 2012, 23:22 pm
Supongo que poniendo publicidad >.<


los inundas de publicidad cuando suben una foto.. y luego te roban un monton de ancho de banda? eso no costea ( ._.)


Título: Re: ¿Que debo tener en cuenta antes de realizar un Hosting de Imágenes?
Publicado por: WIитX en 28 Agosto 2012, 23:24 pm

los inundas de publicidad cuando suben una foto.. y luego te roban un monton de ancho de banda? eso no costea ( ._.)

Ya la verdad esque no... solo mira imageshack por ejemplo esta inundado de publicidad por todos lados... no es un buen futuro una cosa así mas futuro tiene una empresa de hostings y resellers pero bueno si le hace ilu por provar haber que tal le sale.

Suerte


Título: Re: ¿Que debo tener en cuenta antes de realizar un Hosting de Imágenes?
Publicado por: #!drvy en 28 Agosto 2012, 23:26 pm
Citar
los inundas de publicidad cuando suben una foto.. y luego te roban un monton de ancho de banda? eso no costea ( ._.)

Los grandes servidores de imágenes suelen poner un limite al ancho de banda que puede consumir una imagen.. luego muestran una de las suyas diciendo: "Has consumido... bla bla bla"...

Aparte que definen el máximo tiempo posible de cache y usan CDN's para amortiguar el impacto...

Luego están cuentas premium y no se que mas leches... xD

Respecto al tema.. precisamente eso.. Cache mucho cache.. limites y CDN's tipo cloudflare.


Saludos


Título: Re: ¿Que debo tener en cuenta antes de realizar un Hosting de Imágenes?
Publicado por: TheEGG 89 en 29 Agosto 2012, 02:59 am
La idea no es necesariamente hacer plata con el Hosting de imágenes.
¿Por qué me saldría tan caro si hago una carpeta para cada Usuario? hay muchos hosting de confianza que brindan espacio ILIMITADO a precios razonables.
De lo contrario tendré que hacer mi propio Hosting (¿que conexión me recomendarían en este caso?


Título: Re: ¿Que debo tener en cuenta antes de realizar un Hosting de Imágenes?
Publicado por: Kase en 29 Agosto 2012, 05:26 am
La idea no es necesariamente hacer plata con el Hosting de imágenes.
¿Por qué me saldría tan caro si hago una carpeta para cada Usuario? hay muchos hosting de confianza que brindan espacio ILIMITADO a precios razonables.
De lo contrario tendré que hacer mi propio Hosting (¿que conexión me recomendarían en este caso?


simple, por que en sus terminos de servicio dicen claramente, no subir web que hospeden imagenes de manera publica...

te aseguro que eso esta en los mas populares, como hostgator, monsterhost/bluehost,  y otros 2 que no recuerdo, de los cuales me lei los TOS


Título: Re: ¿Que debo tener en cuenta antes de realizar un Hosting de Imágenes?
Publicado por: #!drvy en 29 Agosto 2012, 05:44 am
Citar
hay muchos hosting de confianza que brindan espacio ILIMITADO a precios razonables.
Los hostings con espacio/bandwidth ILIMITADO, no admiten crear servicios para alojar archivos (ya sean vídeos imágenes o cualquier otro archivo)... esta las TOS de cualquier hosting compartido.

Aparte lo de espacio ILIMITADO es mas o menos una estafa pues a no ser que hagas un hosting de archivos nunca llegarías a usar mas de 5GB y usar el host como un hosting de archivos (aunque sea personal) también suele estar en contra de las TOS.

Citar
De lo contrario tendré que hacer mi propio Hosting (¿que conexión me recomendarían en este caso?
No se si realmente estas muy informado sobre lo que lo que pretendes hacer....
Un servidor no es contratar internet.. poner una PC.. instalar un lamp y a rular...


Saludos


Título: Re: ¿Que debo tener en cuenta antes de realizar un Hosting de Imágenes?
Publicado por: TheEGG 89 en 29 Agosto 2012, 07:30 am
Si ninguno Hosting me permite alojar mi proyecto en el, voy a tener que tener mi propio Hosting, supongo que para eso debo tener una conexión a internet, si no no funcionaría jaja, a esa conexión me refiero.


Título: Re: ¿Que debo tener en cuenta antes de realizar un Hosting de Imágenes?
Publicado por: #!drvy en 29 Agosto 2012, 12:45 pm
Lo que te digo es que hacerte un hosting no es tan sencillo como contratar un servicio de internet y pista... no te vale cualquier cosa como las ofertas de Ono/Jazztel/Movistar que por 9/14/99 euros tienes internet en casa... NO.

Necesitas unas cantidades de descarga y sobretodo subida muy por encima de las que te dan...

Te saldría mas barato contratar un servidor dedicado que montarte el hosting tu mismo... y no hablar que va a ser uno de imágenes donde necesitaras un servidor y no un PC cualquiera...


Saludos


Título: Re: ¿Que debo tener en cuenta antes de realizar un Hosting de Imágenes?
Publicado por: TheEGG 89 en 30 Agosto 2012, 10:35 am
Entonces me recomendais contratar uno dedicado¿¿ que especificaciones me recomiendas??