bigmom/storage-manager

Laravel 多磁盘文件上传管理包。

dev-master 2021-10-21 07:42 UTC

This package is auto-updated.

Last update: 2024-09-21 14:14:42 UTC


README

警告

  1. 此包不包括身份验证。请将中间件添加到配置文件中,以限制对控制台的访问。
  2. 此包中包含的控制台不应向不受信任的用户公开。理想情况下,它应仅由可信赖的用户使用,这些用户不会发送修改后的请求,因为文件的大小和MIME类型是从客户端发送的,而不是在服务器端进行验证。
  3. 截至2021-08-17,我无法为Digital Ocean Spaces使用带有Content-Disposition的预签名请求工作。

介绍

这是一个用于管理文件存储的Laravel包,主要用于使用多个磁盘的情况。

创建此包的主要动机是因为存在更便宜的存储服务,尽管它们的可靠性不高。通过将相同的文件上传到多个服务,比单独将相同的文件上传到每个服务并确保它们各自是最新的更易于实施回退解决方案。

该包包括一个用于管理文件的控制台、用于在服务器之间同步三个数据库表(例如,生产、测试和暴露的控制台服务器)的端点和命令,以及两个实现了回退的Blade组件(x-bigmom-image和x-bigmom-source)。

设置

  1. composer require bigmom/storage-manager
  2. php artisan vendor:publish
  3. php artisan migrate

配置

  1. expose-console - 设置是否在此特定应用程序中公开控制台。
  2. back-url - 设置控制台中返回按钮的重定向目标。
  3. disks.sequence - 返回特定文件的URL的序列。用于实现文件回退策略。
  4. disks.config - 每个磁盘的配置。请参阅配置文件以获取更多信息。
  5. files.max-size - 可以发送的最大文件大小。
  6. allow-pull - 设置是否公开用于检索文件夹、文件和文件版本的API端点。
  7. api - 用于拉取的API端点的详细信息。
  8. middleware - 控制台和API端点的中间件栈。

命令

  1. php artisan storage:pull - 从API端点拉取文件夹、文件和文件版本。此命令使用基本身份验证,这可能不适合您的特定情况。请仔细考虑是否希望使用此身份验证方案。