expresslanding / laravel-filesystem
适用于 Laravel 9.X 的文件系统处理
Requires
- php: ^8.0.2
- ext-json: *
- guzzlehttp/guzzle: ^7.4
Requires (Dev)
- orchestra/testbench: ^6.2.0
- phpunit/phpunit: ^9.5.10
This package is not auto-updated.
Last update: 2024-09-14 21:26:09 UTC
README
Laravel 文件系统 是 Laravel 功能的扩展,用于处理文件系统。您可以连接无限数量的磁盘,管理其状态,跟踪占用空间。
简介
该软件包允许您使用不同类型的驱动程序(local
、s3
、SFTP
或 FTP
)与无限数量的磁盘一起工作。您可以监控磁盘空间、管理状态等。有关支持的文件系统和驱动程序的更多信息,请参阅 Laravel 文件系统
安装
通过 composer 安装此软件包,请执行
composer require expresslanding/laravel-filesystem
您应使用以下命令发布迁移和 config/filesystem.php
配置文件
php artisan vendor:publish --provider="ExpressLanding\Filesystem\FilesystemServiceProvider"
配置
设置数据库
该软件包支持两种类型的数据库
- MySQL
- PostgreSQL
发布配置和迁移后,您应为您的应用程序设置数据库。
MySQL 设置
对于 MySQL 数据库,第一步是将 FILESYSTEM_DATABASE
设置为 mysql
。您可以在 .env
配置文件或 config/filesystem.php
中的 database
部分执行此操作。下一步,您应设置表名。在您的应用程序的 .env
配置文件中添加 FILESYSTEM_TABLE
参数以及表名。
示例 .env
FILESYSTEM_DATABASE=mysql FILESYSTEM_TABLE=filesystems
修改迁移中的两个字段。打开包迁移并更改 name
和 config
字段的类型。
之前
... $table->text('name'); // For MySQL use string('name', 200); $table->jsonb('config'); // For MySQL use text('config'); ...
之后
... $table->string('name', 200); $table->text('config'); ...
Postgres 设置
默认情况下,Laravel 软件包与 Postgres 数据库一起工作,并且 database
部分默认为 pgsql
。但是,您可以在 .env
参数中添加 FILESYSTEM_DATABASE
作为 pgsql
,以防万一。下一步,您应设置表名。在您的应用程序的 .env
配置文件中添加 FILESYSTEM_TABLE
参数以及表名。您可以使用模式声明表名,例如 content
模式中的 filesystems
表。
示例 .env
FILESYSTEM_DATABASE=pgsql FILESYSTEM_TABLE=content.filesystems
状态
每个文件系统都有其他状态。您可以在 config/filesystem.php
中的 statuses
部分设置自定义状态。默认情况下
available
:主要磁盘状态。如果状态可用,则可以与磁盘一起工作。如果您想更改此状态名称,则必须在配置文件config/filesystem.php
中的statuses_map
->availableDisk
部分声明新名称。deactivated
:这是磁盘创建后的默认状态。如果您想更改此状态名称,则必须在配置文件config/filesystem.php
中的statuses_map
->newDisk
部分声明新名称。disabled
:您可以使用“禁用”状态禁用磁盘。full
:当磁盘满时,触发“满”状态。transferred
:例如,如果数据已转移到另一个驱动器。仅在服务状态。archived
:如果磁盘需要删除一段时间后,请设置此状态。maintenance
:如果您需要执行技术工作,请使用此状态标记磁盘。
状态重命名
再次关于两个主要状态。Laravel 文件系统软件包有两个主要状态 available
和 deactivated
。如果您想更改名称,则必须在配置文件 config/filesystem.php
中的 statuses_map
部分声明它们。
可用
状态重命名示例 config/filesyste.php
... 'statuses' => [ /* * Don't rewrite this status because it's main disk status! */ 'newAvailableStatusName', ... ], 'statuses_map' => [ ... /* * Status defining a free disk for work */ 'availableDisk' => 'newAvailableStatusName', ], ],
已禁用
状态重命名示例 config/filesyste.php
... 'statuses' => [ ... /* * This status is the default after disk creation. */ 'newDeactivatedStatusName', ... ], 'statuses_map' => [ /* * The status assigned to the new disk */ 'newDisk' => 'newDeactivatedStatusName', ... ], ],
方法
即将推出
命令
即将推出