Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: dimitrix en 8 Junio 2012, 18:02 pm



Título: Como subir un fichero a otro servidor ¿Cómo sería mejor?
Publicado por: dimitrix en 8 Junio 2012, 18:02 pm
Vale, os comento un poco. Tengo dos páginas en dos servidores diferentes:

Página 1: www.paginaprincipal.com
Página 2: www.servidorgordo.com

En la página principal (1) tengo una web con un formulario para subir ficheros. Estos ficheros tendrán ser guardados en servidor gordo (2) y devolver la URL (o un ID) del fichero.

¿Cómo lo haríais?

Citar
Datos:
 - Tiene que devolver un ID que se guarda en la base de datos por lo que no podría ser FTP.
 - Tiene que ser lo más rápido posible. ¿Lógico, no?
 - La web (1) tiene que enviar el ID del usuario al servidor (2).

Espero vuestras ideas!


Título: Re: Como subir un fichero a otro servidor ¿Cómo sería mejor?
Publicado por: WarGhost en 8 Junio 2012, 18:27 pm
El algoritmo para subir y procesar la imagen puede estar servidor dos, o en el 1?


Título: Re: Como subir un fichero a otro servidor ¿Cómo sería mejor?
Publicado por: dimitrix en 8 Junio 2012, 18:31 pm
El algoritmo para subir y procesar la imagen puede estar servidor dos, o en el 1?

No entiendo muy bien la pregunta.

Si dices a que servidor apunta el form, la respuesta es el 1.
Por eso es el servidor 1 recibe el archivo y lo tiene que mandar al 2 y que el dos le de una respuesta.

La única ventaja es que la transferencia entre servidores es más rápido 100Mb simétricos.


Título: Re: Como subir un fichero a otro servidor ¿Cómo sería mejor?
Publicado por: WHK en 8 Junio 2012, 18:49 pm
Fácil, que el id lo genere el servidor donde está la web y mande el archivo via post data al servidor de los archivos con el id y que guarde el archivo con el id incluido (que no es el id real de archivo sino un token de localización) y ya está.

De hecho la idea es que utilices un mismo dominio con subdominios diferentes para compartir las cookies y verificar la autentificación del usuario en ambos servidores.

Si el servidor 2 no es tuyo podrias agregar un subdominio apuntando al servidor real y listo.


Título: Re: Como subir un fichero a otro servidor ¿Cómo sería mejor?
Publicado por: dimitrix en 8 Junio 2012, 19:05 pm
El problema es que el ID lo tiene que generar el servidor (2) y el problema es que el usuario no puede saber que el archivo se ha guardado en otro servidor, por eso no se puede hacer con lo de las cookies como has dicho.


Título: Re: Como subir un fichero a otro servidor ¿Cómo sería mejor?
Publicado por: Graphixx en 9 Junio 2012, 18:44 pm
Haces que en el servidor que sirve los archivos, lleguen las url de descarga encriptadas:
http://php.net/manual/es/function.urlencode.php
asi el usuario no vera de donde se le estan sirviendo.


Título: Re: Como subir un fichero a otro servidor ¿Cómo sería mejor?
Publicado por: dimitrix en 9 Junio 2012, 18:53 pm
Haces que en el servidor que sirve los archivos, lleguen las url de descarga encriptadas:
http://php.net/manual/es/function.urlencode.php
asi el usuario no vera de donde se le estan sirviendo.

El problema no es servir los archivos, sino llegar a subir los ficheros.


Título: Re: Como subir un fichero a otro servidor ¿Cómo sería mejor?
Publicado por: it3r en 9 Junio 2012, 19:32 pm
creo que no es lo mas optimo ni mucho menos lo mas rápido, pero con curl se podria hacer, es decir recibes el archivo en server 1 y luego mediante curl lo envias a server 2 quien lo guarda y muestra un id, con el php del server 1 parseas la respuesta del server para obtener el id.

De esa manera el cliente nunca se entera de esa comunicacion entre server 1 y 2.

Saludos


Título: Re: Como subir un fichero a otro servidor ¿Cómo sería mejor?
Publicado por: dimitrix en 9 Junio 2012, 23:39 pm
creo que no es lo mas optimo ni mucho menos lo mas rápido, pero con curl se podria hacer, es decir recibes el archivo en server 1 y luego mediante curl lo envias a server 2 quien lo guarda y muestra un id, con el php del server 1 parseas la respuesta del server para obtener el id.

De esa manera el cliente nunca se entera de esa comunicacion entre server 1 y 2.

Saludos

Justamente estaba pensando en eso, cURL, pero si que existen muchas otras formas para transmitir archivos internamente, por eso pregunto al foro cual es la mejor.


Título: Re: Como subir un fichero a otro servidor ¿Cómo sería mejor?
Publicado por: ~ Yoya ~ en 10 Junio 2012, 15:11 pm
Yo igual te recomiendo ocupar Curl, es muy rápido...


Título: Re: Como subir un fichero a otro servidor ¿Cómo sería mejor?
Publicado por: it3r en 10 Junio 2012, 17:06 pm
Se me ocurre tambien que si los 2 servidores estan en la misma red puedes utilizar un php que llame a un comando del sistema como scp para copiar mediante red el archivo y ya con curl envías la ruta en que queda el archivo y ademas recibes el id.

saludos