unikka / filepreviews
filepreviews.io 的 Neos CMS 集成,用于生成缩略图
Requires
- flowpack/jobqueue-common: ^3.0
- flowpack/jobqueue-doctrine: ^3.0
- guzzlehttp/guzzle: ^7.0
- neos/flow: ~5.3
- neos/media: ~4.3
This package is auto-updated.
Last update: 2024-09-20 22:07:40 UTC
README
Neos CMS 文件预览集成
此包基于 filepreviews.io API 生成不同类型文档的缩略图并提取元数据。
它是如何工作的?
此生成器调用 FilePreviews.io API 为多种不同文件格式生成缩略图。有关更多信息,请访问 filepreviews.io 网站。
入门指南
要使用此包,您需要在 [filepreview.io] 上有一个账户。如果您还没有账户,请创建一个。否则,您无法使用此包。
如果您已经有了账户,您只需查找您的 API Key
和相应的 Secret
。
通过 composer 安装包
composer require unikka/filepreviews
配置 API 凭据
Unikka: FilePreviews: apiKey: 'your-key' apiSecret: 'your-secret'
要通过 filepreview.io 获取预览图像,我们使用队列。这意味着当您将新文件上传到 Neos 时,我们首先创建一个标准预览图像,然后从服务请求它。当预览图像对您的网站可用时,我们将其下载并更新之前的预览图像。
为了使队列工作,您需要先设置它。这是通过以下命令完成的
./flow queue:setup filepreview-queue
该命令初始化了一切,我们获得了一个额外的数据库表 flowpack_jobqueue_messages_filepreview-queue
,其中列出了我们发送到 filepreviews.io 的所有缩略图请求。现在我们只需确保有一个工作进程正在运行并处理所有我们的作业。如果发生错误或文件尚未准备好,文件将被放回并再次查询。
./flow flowpack.jobqueue.common:job:work filepreview-queue
配置
与其他缩略图生成器一样,您可以更改默认设置。第一步,如在前面的入门指南中提到的,您需要配置您的 API 密钥。
Unikka: FilePreviews: apiKey: 'key' apiSecret: 'secret' defaultOptions: format: 'jpg'
apiKey
:检查 filepreviews.ioapiSecret
:检查 filepreviews.iodefaultOptions
:检查 API 端点 文档
我们使用自己的缩略图生成器,因此可以分配不同的选项。您可以使用 FilePreviewThumbnailGenerator,它具有如支持扩展等特性,仅对某些特定文件格式进行选择。例如,对于图像,使用生成器并不很有用,因为 Neos 可以自己处理它们。请参阅 支持的格式。
Neos: Media: thumbnailGenerators: 'Unikka\FilePreviews\Domain\Model\ThumbnailGenerator\FilePreviewsThumbnailGenerator': maximumFileSize: 2000000 supportedExtensions: [ 'doc', 'docx', 'ppt', 'pptx', 'xls', 'xlxs', 'odt', 'ott', 'odp', 'txt', 'rtf', 'eps', 'psd', 'ai' ]
supportedExtensions
:检查 FilePreviews 的官方文档 支持的格式 并享受。maximumFileSize
:默认值为 2000000
我们使用了 Flowpack.JobQueue.Common 和 Flowpack.JobQueue.Doctrine 这两个包,这些包自带了许多配置。请查看包的文档。我们使用 doctrine 后端来提供开箱即用的错误处理。但如果你想使用 Redis 等其他工具,你可以进行配置并替换 className。
Flowpack: JobQueue: Common: queues: 'filepreview-queue': className: 'Flowpack\JobQueue\Doctrine\Queue\DoctrineQueue' maximumNumberOfReleases: 3 executeIsolated: true options: defaultTimeout: 30 releaseOptions: priority: 512 delay: 15
贡献
我们非常欢迎您为 FilePreviews 贡献代码。我们尽量让这个过程尽可能简单。我们使用语义化版本控制,以便有更多时间专注于重要的事情,而不是在依赖或发布地狱中挣扎。
因此,第一条规则是遵循 eslint 提交信息指南。如果您总是通过 yarn commit
提交,这将会非常简单。Commitizen 将会引导您。
所有 PR 将合并到 master 分支。Travis 和 semantic release 将检查提交信息,并在分析最新提交触发新版本构建时开始构建新版本。
如果您有任何问题,请通过 Twitter 或 Github 联系我们。
关于
此包基于 Ttree\FilePreviews
包。我们感谢 ttree 团队 所做的所有努力和初始开发。
许可
GNU 通用公共许可证(版本 3)。请参阅 许可文件 了解更多信息。