问题描述

我正在使用 Wordpress 媒体上传器上传图像,我想知道是否有办法将其上传到我的远程服务器而不是我的本地服务器?示例:我的 wordpress 博客托管在服务器 A 上,我想要使用媒体上传器将图像上传到服务器 B 而不是服务器 A.

两台服务器都使用 nginx 作为网络服务器运行 Ubuntu 10.04 LTS,并且都支持 ftp& SFTP 。

最佳解决方案

我刚刚构建了一个这样做的插件。它不是完美的,但它做它的工作。

你可以在我的 Github 找到它:https://github.com/pontusab/wp-ftp-media-library

所以你需要改变第 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 
    );

这个插件是什么,它将上传结构从/year /month 更改为仅在我们的服务器 A 的情况下在本地机器上上传。然后它使用 php 通过以下方式连接到 ftp:ftp_connect 。当 wp_generate_attachment_metadata 运行时,该功能将触发。然后运行一个 check in the upload folder to see if there areu any images,如果是这样,它将全部上传到 ftp-server 通过 ftp_put 。上传完成后,文件将使用 unlink 函数从本地机器中删除。

然后插件将图像的 URL 更改为指向 ftp-server 的”public” ip 或主机名。我建议使用类似 static.mydomain.com 或 cdn.mydomai.com 。他们需要指向 ftp-server(服务器 B),这使您能够从 ftp-server 加载图像。

正如其他成员所说,你应该使用一个 ftp-server,它更好的一个真正的 cdn,由保险丝或像亚马逊 S3 这样的东西。

参考文献

注:本文内容整合自 Google/Baidu/Bing 辅助翻译的英文资料结果。如果您对结果不满意,可以加入我们改善翻译效果:薇晓朵技术论坛。