如何在 DigitalOcean Spaces 上存储 WordPress 资产

介绍

DigitalOcean Spaces 是一个可以用于存储大量多样化、非结构化数据的对象存储服务. 通常包含图像和视频资产的 WordPress 网站可以成为对象存储解决方案的良好候选人。 使用对象存储为这些类型的静态资源可以通过在您的服务器上释放空间和资源来优化网站性能。 有关对象存储和 WordPress 的更多信息,请参阅我们的教程 How To Back Up a WordPress Site to Spaces

在本教程中,我们将使用一个直接与DigitalOcean Spaces合作的WordPress插件来使用它作为主要资产商店。 DigitalOcean Spaces Sync插件将我们WordPress媒体库的数据路由到Spaces,并根据您的需求为您提供各种配置选项,简化了使用WordPress实例对象存储的过程。

前提条件

本教程假设您在服务器上有WordPress实例以及DigitalOcean空间. 如果您没有此设置,您可以完成以下操作:

一个 Ubuntu 16.04 服务器,根据我们的 初始服务器设置与 Ubuntu 16.04 教程设置。

有了这些前提条件,我们已经准备好开始使用这个插件。

更改WordPress权限

在本教程中,我们将在我们的WordPress项目中使用wp-content/uploads文件夹,因此重要的是,这个文件夹存在并具有正确的权限。

1sudo mkdir -p /var/www/html/wp-content/uploads

首先,将所有权设置为您的用户(我们将在这里使用 sammy,但请确保使用您的非根sudo用户),并将组所有权设置为www-data组:

1sudo chown -R sammy:www-data /var/www/html/wp-content/uploads

接下来,设置允许,将给网页服务器写入此文件夹的访问权限:

1sudo chmod -R g+w /var/www/html/wp-content/uploads

我们现在将能够使用我们的插件来创建在wp-content/uploads文件夹中的资产的对象存储中的商店,并从WordPress界面与我们的资产进行互动。

安装DigitalOcean Spaces Sync

使用DigitalOcean Spaces Sync的第一步是将其安装在我们的WordPress文件夹中,我们可以导航到WordPress目录中的插件文件夹:

1cd /var/www/html/wp-content/plugins

从这里,我们可以使用wp命令安装DigitalOcean Spaces Sync:

1wp plugin install do-spaces-sync

要激活插件,我们可以运行:

1wp plugin activate do-spaces-sync

从这里,我们可以导航到我们的WordPress管理仪表板左侧的插件卡:

WordPress Plugin Tab

我们应该在我们的激活插件列表中看到DigitalOcean Spaces Sync:

Spaces Sync Plugin Screen

要管理DigitalOcean Spaces Sync的设置,我们可以导航到我们的设置选项卡,并从菜单中选择DigitalOcean Spaces Sync:

Settings Tab

DigitalOcean Spaces Sync 现在将为我们提供配置资产存储的选项:

DO Spaces Sync Configuration

屏幕上一半的 连接设置字段会询问我们的空间访问密钥和秘密,然后会询问我们的 容器,这将是我们的空间的名称,以及我们的 终点

例如,如果您的空间的 URL 是 https://example-name.nyc3.digitaloceanspaces.com,那么 example-name 将是您的桶/容器,而 nyc3.digitaloceanspaces.com 将是您的终点。

在插件的界面中, Endpoint 部分将预先填充默认的 https://ams3.digitaloceanspaces.com. 如果您的空间居住在另一个区域,您应该修改此终端。

接下来,您将被要求选择 ** 文件和路径设置**.在标记为 ** 文件的完整 URL 路径**的字段中,您可以输入存储公共领域,如果您的文件只存储在您的空间中,或完整的 URL 路径,如果您将其存储在您的空间和服务器上。

例如,如果您的WordPress项目位于/var/www/html,并且您希望在服务器和空间上存储文件,那么您将输入:

  • http://your_server_ip/wp-content/uploads本地路径字段中 /var/www/html/wp-content/uploads

存储前缀Filemask的设置是预先填写的,除非您想为您的同步指定某些类型的文件,否则不需要进行更改。

我们将在以下部分讨论存储文件在您的服务器和空间以及在您的空间上的具体情况。

在多个位置同步和保存文件

DigitalOcean Spaces Sync 提供将文件存储到您的服务器的选项,同时也将其同步到您的空间. 如果您需要在您的服务器上保留文件,但也想在其他地方存储备份,这个实用程序可以帮助您。我们将通过将文件同步到我们的空间,同时保持在我们的服务器上。为本示例的目的,我们将假设我们有一个名为 `sammy10x10.png’的文件,我们希望在我们的媒体库和我们的空间中存储。

首先,导航到您的 WordPress 管理仪表板上的 设置选项卡,并从列出的选项菜单中选择 DigitalOcean Spaces Sync

接下来,在连接设置字段中,输入你的空间密钥秘密字段,然后输入你的容器终端字段。记住,如果你的空间的URL是https://example-name.nyc3.digitaloceanspaces.com,那么示例名将是你的容器字段,而nyc3.digitaloceanspaces.com将是你的终端字段。通过点击检查连接按钮来测试你的连接:

Check Connection Button

现在我们已经准备好填写 ** 文件和路径设置 **。

Full URL-path to files 字段中,我们可以输入我们的完整 URL 路径,因为我们正在将我们的文件存储在我们的服务器和我们的空间中。我们将使用我们的服务器的 IP 地址在这里,但如果您有域名,您可以为您的域名更换 IP 地址。 有关注册域名与 DigitalOcean 的更多信息,请参阅我们在 How To Set Up A Host Name with DigitalOcean上的教程。 在我们的情况下, Full URL-path to files 将是 http://your_server_ip/wp-content/uploads

接下来,我们将填写本地路径字段,填写到上传目录的本地路径:/var/www/html/wp-content/uploads

由于我们正在使用单个文件,我们不需要修改 存储前缀Filemask的部分. 随着您的WordPress媒体库的尺寸和品种的增长,您可以修改此设置,以针对单个文件类型使用野外卡和扩展,如 Filemask字段中的 `*.png。

您的最终 ** 文件和路径设置 ** 将看起来如下:

Sync Server and Cloud

请确保通过点击屏幕底部的 ** 保存更改 ** 按钮来保存您的配置更改。

现在我们可以将我们的文件, sammy10x10.png,添加到我们的WordPress媒体库中。我们将使用wp媒体导入命令,这将将文件从我们的主目录导入到我们的WordPress媒体库中。在这种情况下,我们的主目录将属于sammy,但在你的情况下,这将是你的非根‘sudo’用户。当我们移动文件时,我们将使用--path参数来指定我们的WordPress项目的位置:

1wp media import --path=/var/www/html/ /home/sammy/sammy10x10.png

看看我们的WordPress界面,我们现在应该看到我们的文件在我们的 媒体图书馆. 我们可以沿着我们的WordPress管理仪表板的左侧的 媒体图书馆选项卡导航:

Media Library Tab

如果我们在DigitalOcean控制面板上导航到我们的空间页面,我们也应该在我们的空间中看到该文件。

最后,我们可以导航到我们的wp-content/uploads文件夹,在那里WordPress将创建一个子文件夹与年份和月。

在空间中存储文件

DigitalOcean Spaces Sync插件有一个额外的选项,将允许我们仅存储文件在我们的空间,如果我们想优化空间和资源在我们的服务器上. 我们将与另一个文件, sammy-heart10x10.png,并设置我们的DigitalOcean Spaces Sync设置,以便这个文件只存储在我们的空间。

首先,让我们回到插件的主要配置页面:

DO Spaces Sync Configuration

我们可以留下 连接设置的信息,但我们会更改 文件和路径设置。 首先,在 完整的URL路径到文件,我们会写存储公共领域。 再次,我们会使用我们的服务器IP,但如果你有一个,你可以换一个域名: http://uploads.your_server_ip`

接下来,我们将导航到页面底部的 Sync Settings,然后点击第一个框,这将允许我们仅在云中存储文件并在成功上传后删除

Sync Cloud Only

请确保通过点击屏幕底部的保存更改按钮来保存您的更改。

返回命令行,我们将将sammy-heart10x10.png从我们的用户主目录移动到我们的媒体库使用wp媒体导入:

1wp media import --path=/var/www/html/ /home/sammy/sammy-heart10x10.png

如果我们返回我们的WordPress界面,我们不会在我们的媒体库中看到sammy-heart10x10.pngsammy10x10.png

最后,如果我们导航到DigitalOcean控制面板的空间页面,我们应该看到两个文件存储在我们的空间中。

结论

我们已经涵盖了两种不同的选项,您可以使用存储您的WordPress媒体文件到DigitalOcean Spaces使用DigitalOcean Spaces Sync. 这个插件提供了额外的定制选项,您可以通过阅读开发者的文章`同步您的WordPress媒体与DigitalOcean Spaces来了解更多。

如果您想了解有关与 Spaces 合作的更多一般信息,请参阅我们的 DigitalOcean Spaces 介绍和我们对 Spaces 性能的最佳实践的指南。

Published At
Categories with 技术
comments powered by Disqus