后端环境中的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;
参考文献:
我们最近开始了我们的第一个 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;
参考文献: