我可以在 Prestashop 中使用 DigitalOcean Spaces CDN 作为 MediaServer 吗?

Can I use DigitalOcean Spaces CDN as MediaServer in Prestashop?

我的 prestashop 托管在 DigitalOcean droplet 上。我想在我的商店中使用 DigitalOcean Spaces 作为 MediaServer。 但是,如果我在 Prestashop 中将空间原点 (https://xxxxxxxx.fra1.cdn.digitaloceanspaces.com) 设置为 MediaServer,那么我的图像就会丢失。 产品页面源码中的img src好像是对的,它指向的是CDN地址。 主要问题是,prestashop 不将我的图像同步到 CDN。

以前试过兔兔CDN,还可以。图片是自动上传的。

我应该如何设置 DigitalOcean Spaces 使其像 Bunny CDN 一样工作?

Prestashop 没有将图像 sync/copy 上传到远程目标的功能,图像将始终上传到安装它的文件系统。

后台的“媒体服务器”功能只告诉 Prestashop 必须从中检索图像的 Web 路径,因此您的 CDN 服务必须处理来自后端服务器的图像“拾取和复制” ,所以首先要确保您的 CDN 服务可以像那样工作,并且它不是您必须手动上传资源的不同对象存储服务。

然后,您必须确保 CDN 已正确配置以正确指向您的后端,以便第一个 Web 查询从服务器读取图像,随后从 CDN 读取图像。

意识到这一点后,一种典型的方法是创建一个子域,如“static.mywebsite.com”,并为您的 CDN“https: //xxxxxxxx.fra1.cdn.digitaloceanspaces.com" ,然后就可以在 Prestashop 后台的媒体服务器 space 中输入 "static.mywebsite.com"。

它有两个方面。

  1. Prestashop 图片存储
  2. 从 Prestashop 指向 CDN。

Prestashop 只知道 prestashop/img 目录,它存储所有图像。

从 DigitalOcean Droplet,您可以像文件系统一样挂载 DigitalOcean Spaces。

请查看这里: https://www.digitalocean.com/community/questions/how-to-mount-digitalocean-spaces-on-droplets-with-s3fs

一旦你安装了你的 DO 空间,就说 /storage/DO_Spaces。您只需将 prestaship/img 目录重命名为 prestashop/img_backup 并且可以使用软 link 将 img 指向安装在你的 droplet 上的 DO 空间。

假设/var/www/prestashop是prestashop的安装目录

  1. 转到 prestashop 目录并创建一个软件 link。 ln -s /storage/DO_Spaces /var/www/prestashop/img

现在将整个 prestaship/img_backup 复制到 prestashop/img 目录 cp -rf /var/www/prestashop/img_backup /var/www/prestashopprestashop/img/

几秒钟后,您就会在 DO Spaces 上看到您的图像。

第二步是能够通过来自 DO Spaces 及其 CDN 的浏览器查看您的图像。为此,如上所述创建指向您的 CDN 的 CNAME 指针。

在您的 prestashop 计算机上将图像复制到 /var/www/prestashop/img 目录并检查您是否可以从 http://static.mywebsite.com/image.png 查看该文件。您必须确保您的 DO Spaces 的根目录用作 img 目录。

现在,每次 prestashop 将在 /var/www/prestashop/img 目录中创建一个图像时,它会自动复制到 DO Spaces,并且可以从您的静态 URL 中看到。您将需要在 DO Spaces 上设置正确的权限,以使所有新文件都对世界可见。

关于如何使文件可见或可读的更多信息已作为 DO Spaces 的一部分进行了详细记录。

https://www.digitalocean.com/community/questions/mount-point-with-spaces

使新文件 public 可读存在一些问题。这是一个讨论。一旦你制作了你的文件public,这些文件就可以通过你的静态站点被全世界看到。因此,您可能需要手动创建 DO 空间的问题 public 以便它们对世界可见,这超出了本地安装和复制文件的范围。

一旦将这些图像文件复制到 DO 空间,就可以正常使用了。您可以在“高级设置”下将 Prestashop 配置为使用 CDN。指向 prestashop 配置中的 static.mywebsite.com。 Prestashop 将从 CDN 服务器图像。