tencent cloud

文档反馈

将 WordPress 远程附件存储到 COS

最后更新时间:2022-09-01 16:20:54

    简介

    WordPress 是使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设属于自己的网站,也可以把 WordPress 当作一个内容管理系统(CMS)来使用。

    WordPress 功能强大、扩展性强,这主要得益于其插件众多,易于扩充功能,基本上一个完整网站该有的功能,通过其第三方插件都能实现所有功能。

    这篇文章我们来介绍一下如何使用插件实现远程附件功能,将 WordPress 的媒体库附件存储在腾讯云 对象存储(Cloud Object Storage,COS) 上。

    COS 具有高扩展性、低成本、可靠和安全等特点,将媒体库附件保存在 COS 上有以下好处:

    • 附件将拥有更高的可靠性。
    • 您的服务器无需为附件准备额外的存储空间。
    • 用户查看图片附件时将直连 COS 服务器,不占用您服务器的下行带宽/流量,用户访问速度更快。
    • 可配合腾讯云 内容分发网络(Content Delivery Network,CDN) 进一步提升用户查看图片附件的速度,优化网站访问速度。

    准备工作

    1. 搭建 WordPress 博客平台。
    1. 创建一个公有读私有写的存储桶,存储桶的地域建议与运行 WordPress 博客平台的 CVM 的地域相同,创建详情请参见 创建存储桶 文档。

    2. 存储桶列表中找到刚才创建的存储桶,并单击其存储桶名称,进入存储桶页面。

    3. 在左侧导航栏中,单击概览,查看访问域名并记录。

    安装并配置插件

    安装插件

    在 WordPress 后台,单击插件 > 安装插件,开始安装插件。您可通过下面两种方式获取插件并安装:

    • 后台直接搜索 tencentcloud-cos 进行安装(推荐使用)。
    • 您也可以从 Github 下载最新 releases 源码,通过 WordPress 后台上传安装,或者直接将源码上传到 WordPress 插件目录wp-content/plugins,然后在后台启用。

    配置插件

    1. 单击 WordPress 左侧导航栏腾讯云设置,然后在页面中配置 COS 的相关信息,配置说明见下表:
      配置项 配置值
      SecretId、SecretKey 访问密钥信息,可前往 云 API 密钥 中创建和获取
      所属地域 创建存储桶时所选择的地域
      空间名称 创建存储桶时自定义的存储桶名称,例如examplebucket-1250000000
      访问域名 指 COS 的默认存储桶域名,用户在创建存储桶时,由系统根据存储桶名称和地域自动生成。不同地域的存储桶有不同的默认域名。您可以前往 对象存储控制台 ,在存储桶的概览 > 域名信息中查看
      自动重命名 文件上传到 COS 后自动重命名,避免与已有同名文件相冲突,可按照指定格式重命名
      不在本地保存 开启后,不会在本地保留源文件,建议不开启
      禁止缩略图 开启后不会上传对应的缩略图文件,建议不开启
      数据万象 开启数据万象服务,可对图片进行编辑、压缩、转换格式、添加水印等操作,详情可参见 数据万象产品介绍
      调试 记录错误、异常和警告信息,可选择开启
    2. 配置完成后,单击保存配置即可。
    3. 上传一个新文件进行测试,查看附件详情,查看附件图片的 URL,确认附件图片的 URL 指向腾讯云 COS。
    说明:

    如果以上测试成功,那么接下来需要同步旧资源到 COS 存储桶中(可使用 COSCMD 工具 或者 COS Migration 工具),否则后台无法正常预览旧资源。同步完成以后,可以开启回源设置,可参考下文的 设置回源

    扩展

    1. 使用 CDN 加速访问
      存储桶如果需要配置 CDN 加速,可参见 CDN 加速配置 文档。在插件设置中将 URL 前缀修改为默认 CDN 加速域名或自定义加速域名即可。
    2. 替换数据库中的资源地址
      如果不是新创建的站点,数据库当中必定是旧的资源链接地址,我们需要将资源地址进行替换,插件提供了替换功能,请在首次替换前记得备份。
    • 旧域名填写原资源域名,例如https://example.com/
    • 新域名填写现在的资源域名,例如https://img.example.com/
    1. 设置跨域访问
      在文章中引用对应的资源链接,控制台会提示跨域的错误No 'Access-Control-Allow-Origin' header is present on the requested resource。原因是没有添加 header。您需要在跨域访问 CORS 设置中添加 HTTP Header 配置。下面提供两种途径进行配置:
    • 在 COS 控制台上配置
    说明:

    关于跨域配置操作步骤,请参见 设置跨域访问 文档。

    • 在 CDN 控制台上配置

      • 如允许所有域名,则配置如下:

        Access-Control-Allow-Origin: *
        
      • 只允许您个人的域名访问,则配置如下:

        Access-Control-Allow-Origin: https://example.com
        


    4. 设置回源
    如果您不在 WordPress 后台媒体库中上传资源,建议开启回源设置,详细步骤请参见 设置回源 文档。
    开启回源设置后,当客户端首次访问 COS 源文件时,COS 发现无法命中对象,对客户端返回 302 HTTP 状态码并跳转至回源地址所对应的地址,此时对象由源站提供给客户端,从而保证访问。同时 COS 从源站复制该文件并保存至存储桶对应的目录中;第二次访问时,COS 直接命中对象并返回给客户端。

    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持