mikp/wn-s3browser-plugin

Winter CMS 的 S3 浏览器插件

安装: 3

依赖: 0

建议: 0

安全: 0

星标: 2

关注者: 2

分支: 1

开放问题: 0

类型: winter-plugin

v0.3.0 2022-09-19 02:45 UTC

This package is auto-updated.

Last update: 2024-09-30 01:36:23 UTC


README

Buy me a tree Plant a Tree for Production

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 森林捐款,您将为当地家庭创造就业机会并恢复野生动物栖息地。