burzum/cakephp-file-storage

该软件包已被 废弃 且不再维护。未建议替代软件包。

此插件让您能够在任何类型的存储后端中存储文件。此插件以 CakePHP 风格封装了 Gaufrette 库(https://github.com/KnpLabs/Gaufrette)并提供了一个通过 StorageManager 类使用存储适配器的方法。

安装数: 186,850

依赖项: 6

建议者: 0

安全: 0

星标: 206

关注者: 29

分支: 87

开放问题: 8

类型:cakephp-plugin

3.0.0-beta 2019-07-23 14:45 UTC

README

Software License Build Status Coverage Status Code Quality

如果您是从 CakePHP 2.x 升级,请阅读迁移指南

文件存储插件让您能够在任何类型的存储后端中上传和存储文件。该插件提供了 CakePHP 风格的 GaufretteFlySystem 库,并通过 StorageManager 类提供了一个简单的方式来使用存储适配器。

存储适配器是一个统一的接口,允许您将文件数据存储到本地文件系统、内存、数据库或 zip 文件中,以及远程系统。有一个数据库表跟踪您存储了什么。您始终可以编写自己的适配器或扩展现有的适配器。

工作原理

整个插件都考虑了清晰的 关注点分离(SoC):从应用程序的角度看,文件始终是 file_storage 表中的一个条目。该表是文件实际存储位置的引用,并保留一些元信息,如 mime 类型、文件名、文件哈希(可选)和大小。将文件的路径存储在任意表内,与其他数据一起,被视为 不良实践,因为它不尊重从架构角度的关注点分离,但许多人出于某种原因这样做。

您可以使用插件中的 FileStorage 或 ImageStorage 模型通过 hasOne、hasMany 或 HABTM 将 file_storage 表与您的模型关联起来。当您上传文件时,您可以通过关联将其保存到 FileStorage 模型中,例如 Documents.file。FileStorage 模型随后会分发特定于文件存储的事件,监听这些事件的监听器处理文件并将其放入配置的存储后端,使用不同后端的适配器,并使用路径生成类构建存储路径。

支持的适配器列表

  • Apc
  • Amazon S3
  • ACL Aware 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 无关。

文档

有关文档和教程,请参阅此存储库的docs目录。

支持

有关错误和功能请求,请使用此存储库的问题部分。

贡献

要为此插件做出贡献,请遵循以下一些基本规则。

  • 拉取请求必须发送到反映您想要贡献的版本的分支。
  • 需要单元测试

许可证

版权所有:Florian Krämer

根据 MIT 许可证授权。文件的再分发必须保留上述版权声明。