Cargar imágenes al servidor remoto

11

¿Estoy utilizando Wordpress Media Uploader para cargar imágenes y me preguntaba si hay alguna forma de hacerlo subir a mi servidor remoto en lugar de a mi servidor local? Ejemplo: mi blog de wordpress está alojado en el Servidor A y quiero usar el cargador de medios para cargar imágenes en el Servidor B en lugar del Servidor A.

Ambos servidores ejecutan Ubuntu 10.04 LTS con nginx como servidor web y ambos admiten ftp & sftp.

    
pregunta Ruriko 28.11.2012 - 13:13

4 respuestas

13

Acabo de crear un complemento que hace esto. No es perfecto pero hace su trabajo.

Puede encontrarlo en mi Github: enlace

Entonces necesitas cambiar algunas cosas dentro del archivo en la fila 28:

/**
     * Change this to match your server
     * You only need to change the those with (*)
     * If marked with (-) its optional 
     */

    $settings = array(
        'host'    =>    'ip or hostname',           // * the ftp-server hostname
        'user'    =>    'username',                 // * ftp-user
        'pass'    =>    'password',                 // * ftp-password
        'cdn'     =>    'cdn.example.com',          // * This have to be a pointed domain or subdomain to the root of the uploads
        'path'    =>    '/',                        // - ftp-path, default is root (/). Change here and add the dir on the ftp-server,
        'base'    =>    $upload_dir['basedir']      // Basedir on local 
    );

Lo que hace este complemento es que cambia la estructura de carga de / año / mes para que solo se cargue en la máquina local en nuestro caso Servidor A . Luego usa php para conectarse al ftp a través de: ftp_connect . La función se activa cuando se ejecuta wp_generate_attachment_metadata. Luego ejecuta un revisa la carpeta de carga para ver si hay imágenes , si es así, se cargará todos ellos al servidor ftp a través de ftp_put . Cuando se complete la carga, los archivos se eliminarán de la máquina local mediante la función unlink .

Luego, el complemento cambia la URL de las imágenes a la IP "pública" o al nombre de host que apunta al servidor ftp. Sugiero usar algo como static.mydomain.com o cdn.mydomai.com. Deben apuntarse al servidor ftp (Servidor B), esto le permite cargar las imágenes desde el servidor ftp.

Como los otros miembros dicen que no deberías usar un servidor ftp para esto, es mejor con un CD real, montado por fusible o algo así como Amazon S3.

    
respondido por el Pontus Abrahamsson 03.01.2013 - 18:15
0

Casi suena como si solo quisieras usar un CDN. La forma en que funcionan la mayoría de las CDN es que cargue sus imágenes localmente y se reflejen en la ubicación de la CDN. Luego, configura un dominio que apunta al contenido de CDN y reescribe sus URL de imagen para usar ese dominio en lugar de su URL normal.

Hay varios complementos y servicios buenos, aunque solo tengo experiencia con W3TC y Cloudfront.

    
respondido por el Ed Burns 03.01.2013 - 21:35
0

Tienes que entender cómo WP carga un archivo. Una solicitud POST envía el archivo al servidor donde se almacenará en una carpeta temporal. Después de eso, WP probará el archivo cargado, lo copiará en el directorio de contenido y eliminará el archivo temporal.

Este es un proceso muy complejo. Para las imágenes, puede enlazar con 'media_upload_file', luego verificar si es una imagen. Si es una imagen, cópiela con WP_Filesystem al servidor externo (use el método ftpext y proporcione sus credenciales ftp dentro de las opciones), de lo contrario, deje que WP maneje la carga con wp_handle_upload() . En caso de copiar el archivo a un servidor externo, debe proporcionar la URL y así sucesivamente a WP, para que WP pueda configurar los datos (por ejemplo, para publicaciones adjuntas).

Este trabajo no se realiza con una mano llena de código. Si no eres un desarrollador, mejor contrata a uno. O busca un complemento que haga esto por ti.

    
respondido por el Ralf912 04.01.2013 - 02:48
-1

Puede utilizar SSHFS o FTPFS para montar un directorio en el servidor remoto para su directorio de cargas. De esta manera no necesitarás cambiar nada en WordPress en sí mismo.

El inconveniente es que cada acceso al archivo cargado será más lento dependiendo de dónde reside el servidor B.

    
respondido por el Mark Kaplun 03.01.2013 - 06:08

Lea otras preguntas en las etiquetas