webcoast/deferred-image-processing

在页面生成时请求图像处理而不是处理图像

安装次数: 26,929

依赖项: 0

建议者: 0

安全: 1

星标: 12

关注者: 3

分支: 9

开放性问题: 8

类型:typo3-cms-extension

v1.1.0 2022-09-19 09:10 UTC

README

它是做什么的?

此扩展将图像处理从页面生成期间推迟到客户端(浏览器)实际请求图像时。当图像被处理并放置在存储的已处理文件夹中,它将不会被再次处理,直到它被删除或所有已处理的图像都被清除。

这对于一页上有很多图像的网站非常有用。而不是一个接一个地生成图像,导致页面生成速度大幅度延迟,图像处理负载被分配到可用的PHP进程,从而分配到多个CPU核心。

安装和配置

此扩展可在packagist.org获得

composer require webcoast/deferred-image-processing

或从TYPO3扩展仓库获取。

需要数据库更新以创建处理队列表。

apache重写规则

如果使用随TYPO3一起提供的默认htaccess文件,则存在一个规则,阻止所有未找到的静态文件的处理

# Stop rewrite processing, if we are in the typo3/ directory or any other known directory
# NOTE: Add your additional local storages here
RewriteRule ^(?:typo3/|fileadmin/|typo3conf/|typo3temp/|uploads/|favicon\.ico) - [L]

但对于此扩展正常工作,请求需要重定向到index.php,然后由中间件处理。所以请确保在上述阻止规则之前添加一个类似规则

# For EXT:deferred-image-processing
# If a processed image is not found, then redirect to index.php and let the middleware create one on the fly.
RewriteCond %{DOCUMENT_ROOT}/$1.$3 !-f
RewriteRule ^((fileadmin/_processed_|other-storage/_processed_)/.+)\.(gif|jpg|jpeg|png)$ %{ENV:CWD}index.php [L]

处理队列(可选)

内部,每个延迟处理的图像的记录都存储在数据库表tx_deferredimageprocessing_file中。为了清理此表或加快较少使用的文件的处理速度,可以使用命令控制器或计划任务处理其中的记录。此步骤完全可选,不是扩展工作的必要条件。

./typo3cms deferred_image_processing:process

# Process limiting to 5 items
./typo3cms deferred_image_processing:process 5

文档

由于扩展会自动完成所有操作,因此不需要进一步文档。如果您觉得文档可能有所帮助,请与我联系或提出疑问。

贡献

如果您发现错误或想改进扩展,您可以自由地分叉它并提交带有更改的pull request。如果您没有资源或知识,请提出问题。

许可证

© 2020, WEBcoast

本程序是自由软件:您可以自由地重新分发和/或修改它,具体请参阅自由软件基金会发布的GNU通用公共许可证条款,无论是许可证的第3版,还是(根据您的选择)任何较新版本。

本程序按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性或针对特定目的的适用性。有关详细信息,请参阅GNU通用公共许可证。

您应已收到此程序的GNU通用公共许可证副本。如果没有,请参阅http://www.gnu.org/licenses/