burzum / file-storage
此插件为您提供将文件存储在几乎所有类型的存储后端的可能性。此插件以 CakePHP 风格封装 Gaufrette 库(https://github.com/KnpLabs/Gaufrette)并提供了通过 StorageManager 类使用存储适配器的一种简单方式。
Requires
- php: >=7.2.0
- cakephp/cakephp: 4.x-dev as 4.0.0
- cakephp/plugin-installer: ^1.0.0
- knplabs/gaufrette: ^0.7.0|^0.8.0
Requires (Dev)
- aws/aws-sdk-php: *
- burzum/cakephp-imagine-plugin: 4.x-dev
- cakephp/cakephp-codesniffer: dev-next
- league/flysystem: ^1.0.0
- phpunit/phpunit: ^8.0
- vlucas/phpdotenv: ^3.3
Suggests
- burzum/cakephp-imagine-plugin: Required if you want to use the image processing feature of FileStorage
- league/flysystem: Alternative for Gaufrette, see the docs how to configure it.
- 4.0.x-dev
- 3.0.x-dev
- 3.0.0-beta
- 2.1.0
- 2.0.x-dev
- 2.0.0
- 2.0.0-rc1
- 2.0.0-beta2
- 2.0.0-beta1
- 2.0.0-alpha1
- 1.2.x-dev
- 1.2.1
- 1.2.0
- 1.1.x-dev
- 1.1.6
- 1.1.5
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.1.0-rc1
- 1.1.0-beta1
- 1.1.0-alpha1
- 1.0.x-dev
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 1.0.0-RC1
- 0.5.2
- 0.5.1
- 0.5.0
- 0.4.2
- 0.4.1
- 0.4.0
- 0.3.3
- 0.3.2
- dev-4.0-fixes
- dev-0.0-cake2
- dev-master
This package is auto-updated.
Last update: 2022-03-25 02:38:26 UTC
README
如果您是从 CakePHP 2.x 升级,请阅读 迁移指南。
文件存储 插件为您提供将文件上传和存储在几乎所有类型的存储后端的可能性。此插件以 CakePHP 风格提供 Gaufrette(https://github.com/KnpLabs/Gaufrette)和 FlySystem(https://github.com/thephpleague/flysystem)库,并通过 StorageManager 类提供使用存储适配器的一种简单方式。
存储适配器是一个统一的接口,允许您将文件数据存储到本地文件系统、内存、数据库、ZIP 文件或远程系统中。有一个数据库表跟踪您存储的位置。您始终可以编写自己的适配器或扩展和重载现有的适配器。
工作原理
整个插件都基于清晰的 关注点分离(SoC) 构建:从应用的角度看,文件始终是 file_storage
表中的一个条目。该表是文件实际存储位置的引用,并存储一些元信息,如 MIME 类型、文件名、文件哈希(可选)和大小。在任意表中将文件的路径与其他数据一起存储被认为是 不良做法,因为它不尊重架构层面的 SoC,但出于某种原因,许多人仍然这样做。
您可以使用插件的 FileStorage 或 ImageStorage 模型通过 hasOne、hasMany 或 HABTM 将 file_storage
表与您的模型关联。当您上传文件时,通过关联保存到 FileStorage 模型,例如 Documents.file
。然后 FileStorage 模型会分派特定于文件存储的事件,监听这些事件的监听器会处理文件并将其放入配置的存储后端,使用不同后端的适配器,并使用路径生成类构建存储路径。
支持的适配器列表
- Apc
- Amazon S3
- 具有 ACL 的 Amazon S3
- Azure
- Doctrine DBAL
- Dropbox
- Ftp
- Grid FS
- 内存
- 本地文件系统
- MogileFS
- Open Cloud
- Rackspace Cloudfiles
- Sftp
- ZIP 文件
支持的 CakePHP 版本
- CakePHP 4.x -> 3.0 分支
- CakePHP 3.x -> 2.0 分支
- CakePHP 2.x -> 1.0 分支
要求
- PHP 7.2+
- CakePHP 4.x
- Gaufrette 存储库 0.7.x
可选,但如果你想要开箱即用的图像处理,则必须安装
- 如果你想要处理和存储图像,可以使用 Imagine 图像处理插件。
- 作为 Gaufrette 的替代库,可以使用 FlySystem。
你可以轻松实现你想要的任何文件处理,它不依赖于 Imagine。
文档
有关文档和教程,请参阅此存储库的 docs 目录。
支持
有关错误和功能请求,请使用此存储库的 issues 部分。
贡献
要为此插件做出贡献,请遵循以下一些基本规则。
- 拉取请求必须发送到你想要贡献的版本的分支。
- 需要 单元测试。
许可
版权所有:Florian Krämer
根据 MIT 许可证授权。文件的重新分发必须保留上述版权声明。