Właśnie zbudowałem wtyczkę, która to robi. Nie jest idealny, ale spełnia swoje zadanie.
Możesz go znaleźć w moim Githubie: https://github.com/pontusab/wp-ftp-media-library
Musisz więc zmienić niektóre rzeczy w pliku w wierszu 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
);
Co to jest plugin robi, zmienia structur przesyłania z / rok / miesiąc do przesłać tylko na lokalnym komputerze w naszym przypadku Serwer . Następnie używa php, aby połączyć się z ftp przez: ftp_connect . Funkcja jest uruchamiana po uruchomieniu wp_generate_attachment_metadata. Następnie uruchom sprawdzanie w folderze przesyłania, aby sprawdzić, czy są jakieś obrazy , jeśli tak, prześle je wszystkie na serwer ftp przez ftp_put . Po zakończeniu przesyłania pliki zostaną usunięte z komputera lokalnego za pomocą funkcji unlink .
Następnie wtyczka zmienia adres URL obrazów na „publiczny” adres IP lub nazwę hosta wskazaną na serwer ftp. Sugeruję użycie czegoś takiego jak static.mydomain.com lub cdn.mydomai.com. Należy je wskazać na serwer ftp (serwer B), co umożliwia ładowanie obrazów z serwera ftp.
Jak mówią inni członkowie, powinieneś użyć do tego serwera ftp, lepiej z prawdziwym cdn, montowanym przez bezpiecznik lub coś w rodzaju Amazon S3.