mikp / wn-s3browser-plugin
Winter CMS 的 S3 浏览器插件
v0.3.0
2022-09-19 02:45 UTC
Requires
- ankitpokhrel/tus-php: ^1.3
- composer/installers: ~1.0
- greenlion/php-sql-parser: ^4.4
- league/flysystem: ^1.1
- league/flysystem-aws-s3-v3: ^1.0
- league/flysystem-cached-adapter: ^1.1
- league/flysystem-webdav: ^1.0
- predis/predis: ^1.0
- superbalist/flysystem-google-storage: ^7.2
This package is auto-updated.
Last update: 2024-09-30 01:36:23 UTC
README
S3 对象浏览器插件,包含用于前端视图与 S3 存储桶交互的组件,这是一个 WinterCMS 的插件。
特色功能
- 支持 flysystem 中使用的许多后端
- 使用缓存列出文件
- API 使用 tus-php 实现 TUS 可恢复上传协议,并提供相应的组件
- 可以添加中间件来创建自定义访问控制
为什么?
WinterCMS 已经有媒体管理器和远程文件系统支持。
尽管 CMS 支持这些功能,但展示文件的用户组件并不多。以下是一些示例。
此插件允许额外的文件存储位置和方法。它可以支持非官方的 S3 实现,以及仅 HTTP 的 S3 服务。如果您想在自托管或非公开配置中存储文件,这非常有用。它旨在允许前端用户与存储的文件交互。它提供了一种 API,可以通过中间件进行修改,以创建针对文件的应用程序特定访问控制。
例如
假设您的网站托管了大量 CAD 文件,用户可以下载,但您只想让一些用户能够访问它们。进一步复杂化问题的是,所有 CAD 文件都在您企业的 NAS 上 - 这不是公开的,系统管理员也没有麻烦设置 SSL、添加有效证书或创建根 CA,也许甚至没有 DNS 记录。
通过向 s3browser 路由添加中间件,只有允许的文件将显示在下载页面上,不安全的 S3 存储服务器不会公开暴露。
问题
诚然,我开始这个插件时并没有真正理解 Laravel 文件系统,所以我打算将此实现迁移到使用 WinterCMS 提供的内置远程存储。
使用方法
只需将各种组件添加到视图中。
API
- {GET}
/api/v1/s3browser/list/{bucket}
- {POST/GET}
/api/v1/s3browser/object
- {GET}
/api/v1/s3browser/download
- {POST}
/api/v1/s3browser/upload
- {GET}
/api/v1/s3browser/zip
- {GET}
/api/v1/s3browser/select
- {ANY}
/api/v1/s3browser/tus
组件
- s3browser - 浏览指定的存储桶
- s3uploader - 上传到指定的存储桶
- s3query - 在表格文件上进行选择式查询(WIP)
许可证
此包是 Treeware。如果您在生产中使用它,那么我们请求您为世界买一棵树以感谢我们的工作。通过向 Treeware 森林捐款,您将为当地家庭创造就业机会并恢复野生动物栖息地。