CDN

优质
小牛编辑
127浏览
2023-12-01

文件系统

本地

文件系统 - 本地 的存在为有条件的用户提供了独立部署的支持,其中文件存放在 storage/app 目录中。用户可以使用独立的系统对文件进行发布,只需要将公开地址填写进去即可。

本地公开

「本地公开」是在 ThinkSNS Plus 中默认的一种方式,主要是便于没有条件的用户简单的拥有储存功能。

设置

进入「CDN 管理」,CDN 项选择「文件系统」,然后磁盘选择「本地公开」

必要命令

默认情况下,本地公开磁盘是放在 /storage/app/public 目录下的,这个目录并非公开目录,你需要实现:

php artisan storage:link

执行完成后会创建一个软链到 public/storage。此时就可以通过你的域名访问文件了。

AWS S3

亚马逊 S3 磁盘,是使用你的服务器作为中转站,最重将资源存储在 S3 服务器上的一种磁盘服务。

起到节省磁盘空间的目的。

安装

在使用 S3 磁盘之前,你需要执行:

composer require league/flysystem-aws-s3-v3 ~1.0

来安装 S3 的 磁盘兼容软件。

七牛

七牛的驱动支持七牛的两项服务,你可以选择其中一项,也可以选择同时使用。

配置说明

使用七牛必须将后台表单配置完成,否则服务将会出现错误。

这里推荐将签字设置为「私有」以达到保护资源的目的。

你需要在七牛的「回源设置」中填写「app_url/storage/」作为回源地址,这里暂时的,你也可以点击「CDN 部署方案」来使用独立系统配置。

对象存储

使用对象存储支持 cdn 同时使用,这是七牛自带的功能,不需要在 ThinkSNS Plus 后台设置。

融合 CDN

使用融合 CDN 唯一需要注意的是,你需要联系七牛客服开通「目录刷新」功能,因为例如 头像 在内的资源,无法准确的获取需要刷新的资源。

部署推荐方案

这里的 CDN 部署方案我们以「七牛」为例,其他也可以使用。

说明

因为使用「本地公开」磁盘作为存储,但是在方案中,你不需要执行 storage:link 目录将其公开。

文件系统

这里,你可以采用一套独立的文件系统开发布你的资源,资源存储在 storage/app/public 目录中,如果你使用云服务器,建议使用远程云储存对该目录进行挂载。

部署完成后,你最好开启「回源验证」对你资源服务器的每一个资源获取请求进行验证,以避免一些用户了解 ThinkSNS Plus 规则进行免费获取收费内容。

方案2

我们并不推荐有条件的大型用户直接使用 ThinkSNS Plus 的文件系统和 CDN 系统,因为这是针对 90% 用户需求做的通用解决方案。

所以,如果你是那 10% 我们建议你针对 ThinkSNS Plus 的上传,获取,生成 CDN 进行针对某一个云存储或者私有存储进行针对性的开发,其中您至少做到:

  • 文件直传
  • 来源校验
  • 储存任务完成后的数据表记录创建
  • public 地址生成
  • 付费资源的源头拦截验证