Saya menggunakan pengunggah media Wordpress untuk mengunggah gambar dan saya bertanya-tanya apakah ada cara untuk membuatnya mengunggah ke server jarak jauh saya alih-alih server lokal saya? Contoh: Blog wordpress saya di-host di Server A dan saya ingin menggunakan pengunggah media untuk mengunggah gambar ke Server B alih-alih Server A.
Kedua server menjalankan Ubuntu 10,04 LTS dengan nginx sebagai server web dan keduanya mendukung ftp & sftp.
Jawaban:
Saya baru saja membangun sebuah plugin yang melakukan ini. Itu tidak sempurna tetapi melakukan tugasnya.
Anda dapat menemukannya di Github saya: https://github.com/pontusab/wp-ftp-media-library
Jadi, Anda perlu mengubah beberapa hal di dalam file di baris 28:
Apa plugin ini dilakukan adalah, perubahan upload structur dari / tahun / bulan hanya upload pada mesin lokal dalam kasus kami Server A . Kemudian ia menggunakan php untuk terhubung ke ftp melalui: ftp_connect . Fungsi menyala ketika wp_generate_attachment_metadata berjalan. Kemudian jalankan tanda centang di folder unggah untuk melihat apakah ada gambar , jika demikian akan mengunggah semuanya ke server-ftp melalui ftp_put . Ketika unggahan selesai, file akan dihapus dari mesin lokal menggunakan fungsi hapus tautan .
Kemudian plugin mengubah url gambar ke ip "publik" atau nama host yang diarahkan ke ftp-server. Saya sarankan menggunakan sesuatu seperti static.mydomain.com atau cdn.mydomai.com. Mereka perlu diarahkan ke ftp-server (Server B) ini memungkinkan Anda untuk memuat gambar dari ftp-server.
Seperti anggota lain mengatakan Anda harus menggunakan ftp-server untuk ini, lebih baik dengan cdn nyata, Dipasang oleh sekering atau sesuatu seperti Amazon S3.
sumber
Hampir terdengar seperti Anda hanya ingin menggunakan CDN. Cara sebagian besar CDN bekerja adalah Anda memuat gambar Anda secara lokal, dan mereka dicerminkan di lokasi CDN. Kemudian Anda mengatur domain yang menunjuk ke konten CDN dan menulis ulang url gambar Anda untuk menggunakan domain itu daripada url normal Anda.
Ada beberapa plugin dan layanan yang bagus, walaupun saya hanya memiliki pengalaman dengan W3TC dan Cloudfront.
sumber
Anda harus memahami cara WP mengunggah file. Permintaan POST mengirim file ke server di mana ia akan disimpan dalam folder sementara. Setelah itu, WP akan menguji file yang diunggah, menyalinnya ke direktori konten dan menghapus file sementara.
Ini adalah proses yang sangat kompleks. Untuk gambar, Anda dapat menghubungkan ke 'media_upload_file', lalu periksa apakah itu adalah gambar. Jika ini adalah gambar, salinlah dengan WP_Filesystem ke server eksternal (gunakan metode ftpext dan berikan kredensial ftp Anda di dalam opsi), atau biarkan WP menangani unggahannya
wp_handle_upload()
. Dalam hal menyalin file ke server eksternal, Anda harus memberikan url dan seterusnya ke WP, sehingga WP dapat mengatur data (misalnya untuk posting lampiran).Pekerjaan ini tidak dilakukan dengan tangan penuh kode. Jika Anda bukan pengembang, lebih baik sewa satu. Atau cari plugin yang akan melakukan ini untuk Anda.
sumber
Anda dapat menggunakan SSHFS atau FTPFS untuk me-mount direktori pada server jauh untuk direktori upload Anda. Dengan cara ini Anda tidak perlu mengubah apa pun di WordPress itu sendiri.
Kekurangannya adalah bahwa setiap akses ke file yang diunggah akan lebih lambat tergantung di mana server B berada.
sumber