Acabo de construir un complemento que hace esto. No es perfecto pero hace su trabajo.
Puedes encontrarlo en mi Github: https://github.com/pontusab/wp-ftp-media-library
Por lo tanto, debe 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 plugin es, cambia la estructuración de carga / año / mes para que solo suba en la máquina local en nuestro caso el 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 una comprobación en la carpeta de carga para ver si hay imágenes , de ser así, las cargará todas al servidor ftp a través de ftp_put . Cuando se complete la carga, los archivos se eliminarán de la máquina local utilizando la función desvincular .
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 apuntar al servidor ftp (Servidor B), esto le permite cargar las imágenes desde el servidor ftp.
Como los otros miembros dicen que debe usar un servidor ftp para esto, es mejor con un cdn real, montado con fusible o algo así como Amazon S3.