unikka / filepreviews

filepreviews.io 的 Neos CMS 集成,用于生成缩略图

资助包维护!
markusguenther
Patreon

安装次数: 23

依赖项: 0

建议者: 0

安全性: 0

星级: 2

关注者: 1

分支: 1

开放问题: 4

类型:neos-package

v2.1.0 2020-07-14 19:04 UTC

This package is auto-updated.

Last update: 2024-09-20 22:07:40 UTC


README

Packagist Code Climate maintainability Packagist semantic-release

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'

我们使用自己的缩略图生成器,因此可以分配不同的选项。您可以使用 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.CommonFlowpack.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)。请参阅 许可文件 了解更多信息。