it-swarm-eu.dev

Nahrát obrázky na vzdálený server

Používám Wordpress media uploader nahrát obrázky a já jsem přemýšlel, jestli existuje způsob, jak to nahrát na můj vzdálený server namísto mého místního serveru? Příklad: Můj blog blogu wordpress je hostován na serveru A a chci použít nástroj pro nahrávání médií k nahrání snímků na server B namísto serveru A.

Oba servery provozují Ubuntu 10.04 LTS s nginx jako webserver a oba podporují ftp & sftp.

11
Ruriko

Právě jsem vytvořil plugin, který to dělá. Není to dokonalé, ale dělá svou práci.

Najdete ho v mém Githubu: https://github.com/pontusab/wp-ftp-media-library

Musíte tedy změnit některé věci v souboru na řádku 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 
    );

To, co tento plugin dělá, mění strukturu uploadu z/year/month pouze na upload na lokálním počítači v našem případě Server A . Pak se používá php pro připojení k ftp přes: ftp_connect . Funkce spustí při spuštění wp_generate_attachment_metadata. Pak spusťte check ve složce uploadu, abyste zjistili, zda existují nějaké obrázky , pokud ano, nahrají je všechny na ftp-server přes ftp_put . Po dokončení uploadu budou soubory odstraněny z lokálního počítače pomocí funkce unlink .

Zásuvný modul pak změní adresu URL obrázků na "veřejnou" IP adresu nebo hostname, které směřují na ftp-server. Doporučuji použít něco jako static.mydomain.com nebo cdn.mydomai.com. Je třeba je ukázat na ftp-server (Server B), což umožňuje načítat obrazy z ftp-serveru.

Stejně jako ostatní členové říkají, že jste k tomu používali ftp-server, jeho lepší s reálným cdn, Mounted by Fuse nebo něco jako Amazon S3.

14

Téměř to zní, jako kdybyste chtěli používat CDN. Způsob, jakým většina CDN funguje, je načtení obrázků lokálně a jejich zrcadlení v místě CDN. Potom nastavíte doménu, která ukazuje na obsah CDN a přepíše vaše adresy URL obrázků, aby tuto doménu použila namísto normální adresy URL.

Existuje několik dobrých pluginů a služeb, i když mám jen zkušenosti s W3TC a Cloudfront.

0
Ed Burns

Musíte pochopit, jak WP nahraje soubor. Požadavek POST odešle soubor na server, kde bude uložen v dočasné složce. Poté, WP otestuje nahraný soubor, zkopíruje jej do adresáře obsahu a odstraní dočasný soubor.

Jedná se o velmi složitý proces. U obrázků můžete zavést do souboru „media_upload_file“ a zkontrolovat, zda se jedná o obrázek. Pokud se jedná o obraz, zkopírujte jej s WP_Filesystem na externí server (použijte metodu ftpext a poskytněte své ftp pověření v rámci možností), jinak nechte WP zpracovat upload s wp_handle_upload(). V případě kopírování souboru na externí server je nutné zadat adresu URL a tak dále WP, takže WP může data nastavit (např. Pro přílohy příloh).

Tato práce není provedena s rukou plnou kódu. Pokud nejste developer, raději si ho najměte. Nebo hledejte plugin, který to udělá za vás.

0
Ralf912