Ich habe gerade ein Plugin erstellt, das dies tut. Es ist nicht perfekt, aber es macht seinen Job.
Sie finden es in meinem Github: https://github.com/pontusab/wp-ftp-media-library
Sie müssen also einige Dinge in der Datei in Zeile 28 ändern:
/**
* 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
);
Dieses Plugin ändert die Upload-Struktur von / Jahr / Monat so, dass sie nur auf den lokalen Computer in unserem Fall Server A hochlädt . Dann verwendet es PHP, um eine Verbindung zum FTP herzustellen über: ftp_connect . Die Funktion wird ausgelöst, wenn wp_generate_attachment_metadata ausgeführt wird. Anschließend wird im Upload-Ordner überprüft , ob Bilder vorhanden sind. In diesem Fall werden alle Bilder über ftp_put auf den FTP-Server hochgeladen . Wenn der Upload abgeschlossen ist, werden die Dateien mithilfe der Funktion zum Aufheben der Verknüpfung vom lokalen Computer entfernt .
Dann ändert das Plugin die URL der Bilder in die "öffentliche" IP oder den Hostnamen, der auf den FTP-Server verweist. Ich schlage vor, etwas wie static.mydomain.com oder cdn.mydomai.com zu verwenden. Sie müssen auf den FTP-Server (Server B) verweisen, damit Sie die Bilder vom FTP-Server laden können.
Wie die anderen Mitglieder sagen, sollten Sie dafür keinen FTP-Server verwenden, es ist besser mit einem echten CDN, der durch eine Sicherung bereitgestellt wird oder so etwas wie Amazon S3.