后端环境中的TYPO3 v10图像处理

TYPO3 v10 Image Processing in Backend Environment

我们最近开始了我们的第一个 TYPO3 10 项目,目前正在努力使用将数据移动到 Algolia 的自定义导入脚本。基本上,一切正常,但 FAL 图像存在问题,特别是在需要处理它们时。

从日志中,我可以找到一个叫做 DeferredBackendImageProcessor 的东西,但是文档没有提到这个,或者我没有在寻找正确的东西。我不确定。

显然,后端环境中的图像不再只是处理了。有一个叫做“processingUrl”的东西,必须调用一次才能处理图像。

我尝试使用 CURL 调用 url,但它不起作用。问题是,当我在浏览器中打开那个“processingUrl”时,它没有效果 - 但如果我在浏览器中打开 link,我登录到 TYPO3 后端,那么图像就会被处理。

我有点迷路了,因为我需要在通过调度程序从后端运行的导入脚本中处理图像(手动,而不是通过 cron)。

就是那个函数出问题了,curl部分在这里没有作用,遗憾。

protected function processImage($image, $imageProcessingConfiguration)
{
    if ($image) {
        $scalingOptions = array (
            'width' => 170
        );
                
        $result = $this->contentObject->getImgResource('fileadmin/'.$image, $scalingOptions);
                
        if (isset($result[3]) && $result[3]) {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $result[3]);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            $output = curl_exec($ch);
            curl_close($ch);
                    
            return '/fileadmin'.$result['processedFile']->getIdentifier();
        }
    }
            
    return '';
}

$result[3] 正在处理 url。 url示例:

domain.com/typo3/index.phproute=%2Fimage%2Fprocess&token=6cbf8275c13623a0d90f15165b9ea1672fe5ad74&id=141

所以我的问题是,如何处理来自该导入脚本的图像?

我不确定是否有更优雅的解决方案,但您可以在作业期间禁用延迟处理:

$processorConfiguration = $GLOBALS['TYPO3_CONF_VARS']['SYS']['fal']['processors']
unset ($GLOBALS['TYPO3_CONF_VARS']['SYS']['fal']['processors']['DeferredBackendImageProcessor'])

// ... LocalImageProcessor will be used

$GLOBALS['TYPO3_CONF_VARS']['SYS']['fal']['processors'] = $processorConfiguration;

参考文献: