BrandOriented / PimcoreCiHubConnector

This bundle adds full integration between Pimcore and CI-HUB Connector. Now you can add, delete and download all assets, lock and unlock, get all versions for specified asset and much more.
https://brandoriented.io/
Other
5 stars 6 forks source link

Do not see thumbnails in CI-HUB for inDesign #66

Open betterapp opened 2 weeks ago

betterapp commented 2 weeks ago

Pimcore version(s) affected

11.2.6

Description

Pimcore: 11.2.6 CI-HUB API: 3.0.21

When I try to list assets (images) in CI-HUB plugin for inDesign I do not see thumbnails.

What I see is: image

There is 500 error on nginx access for getting thumbnails

nginx.logs:

172.71.99.99 - - [18/Jun/2024:12:49:32 +0200] "GET /datahub/rest/jysk/tree-items?type=asset&parentId=283&include_folders=true&size=100&page_cursor=0 HTTP/1.1" 200 914 "-" "axios/0.21.4"
172.71.99.99 - - [18/Jun/2024:12:49:32 +0200] "GET /datahub/rest/jysk/filter HTTP/1.1" 200 165 "-" "axios/0.21.4"
172.71.102.127 - - [18/Jun/2024:12:49:32 +0200] "OPTIONS /datahub/rest/jysk/asset/download?id=259&thumbnail=galleryThumbnail HTTP/1.1" 500 1029 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36"
172.71.102.127 - - [18/Jun/2024:12:49:32 +0200] "OPTIONS /datahub/rest/jysk/asset/download?id=261&thumbnail=galleryThumbnail HTTP/1.1" 500 1029 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36"
172.71.102.127 - - [18/Jun/2024:12:49:32 +0200] "OPTIONS /datahub/rest/jysk/asset/download?id=260&thumbnail=galleryThumbnail HTTP/1.1" 500 1029 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36"
172.71.102.127 - - [18/Jun/2024:12:49:32 +0200] "OPTIONS /datahub/rest/jysk/asset/download?id=262&thumbnail=galleryThumbnail HTTP/1.1" 500 1029 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36"
172.71.102.127 - - [18/Jun/2024:12:49:32 +0200] "OPTIONS /datahub/rest/jysk/asset/download?id=263&thumbnail=galleryThumbnail HTTP/1.1" 500 1029 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36"

And I see CRITICAL PHP error

php.log

[2024-06-18T12:49:32.247423+02:00] php.CRITICAL: Uncaught Error: [] operator not supported for strings {"exception":"[object] (Error(code: 0): [] operator not supported for strings at /var/www/pim/www/vendor/bo-hub/ci-hub-api-bundle/src/EventListener/CorsListener.php:81)"} []
[2024-06-18T12:49:32.247852+02:00] request.CRITICAL: Uncaught PHP Exception Error: "[] operator not supported for strings" at CorsListener.php line 81 {"exception":"[object] (Error(code: 0): [] operator not supported for strings at /var/www/pim/www/vendor/bo-hub/ci-hub-api-bundle/src/EventListener/CorsListener.php:81)"} []
[2024-06-18T12:49:32.247978+02:00] app.ERROR: CIHub exception {"exception":"[object] (Error(code: 0): [] operator not supported for strings at /var/www/pim/www/vendor/bo-hub/ci-hub-api-bundle/src/EventListener/CorsListener.php:81)"} []
[2024-06-18T12:49:32.247889+02:00] php.CRITICAL: Uncaught Error: [] operator not supported for strings {"exception":"[object] (Error(code: 0): [] operator not supported for strings at /var/www/pim/www/vendor/bo-hub/ci-hub-api-bundle/src/EventListener/CorsListener.php:81)"} []
[2024-06-18T12:49:32.247893+02:00] php.CRITICAL: Uncaught Error: [] operator not supported for strings {"exception":"[object] (Error(code: 0): [] operator not supported for strings at /var/www/pim/www/vendor/bo-hub/ci-hub-api-bundle/src/EventListener/CorsListener.php:81)"} []
[2024-06-18T12:49:32.248137+02:00] php.CRITICAL: Uncaught Error: [] operator not supported for strings {"exception":"[object] (Error(code: 0): [] operator not supported for strings at /var/www/pim/www/vendor/bo-hub/ci-hub-api-bundle/src/EventListener/CorsListener.php:81)"} []
[2024-06-18T12:49:32.248119+02:00] php.CRITICAL: Uncaught Error: [] operator not supported for strings {"exception":"[object] (Error(code: 0): [] operator not supported for strings at /var/www/pim/www/vendor/bo-hub/ci-hub-api-bundle/src/EventListener/CorsListener.php:81)"} []
[2024-06-18T12:49:32.248271+02:00] request.CRITICAL: Uncaught PHP Exception Error: "[] operator not supported for strings" at CorsListener.php line 81 {"exception":"[object] (Error(code: 0): [] operator not supported for strings at /var/www/pim/www/vendor/bo-hub/ci-hub-api-bundle/src/EventListener/CorsListener.php:81)"} []
[2024-06-18T12:49:32.248271+02:00] request.CRITICAL: Uncaught PHP Exception Error: "[] operator not supported for strings" at CorsListener.php line 81 {"exception":"[object] (Error(code: 0): [] operator not supported for strings at /var/www/pim/www/vendor/bo-hub/ci-hub-api-bundle/src/EventListener/CorsListener.php:81)"} []
[2024-06-18T12:49:32.248371+02:00] app.ERROR: CIHub exception {"exception":"[object] (Error(code: 0): [] operator not supported for strings at /var/www/pim/www/vendor/bo-hub/ci-hub-api-bundle/src/EventListener/CorsListener.php:81)"} []
[2024-06-18T12:49:32.248371+02:00] app.ERROR: CIHub exception {"exception":"[object] (Error(code: 0): [] operator not supported for strings at /var/www/pim/www/vendor/bo-hub/ci-hub-api-bundle/src/EventListener/CorsListener.php:81)"} []
[2024-06-18T12:49:32.248481+02:00] request.CRITICAL: Uncaught PHP Exception Error: "[] operator not supported for strings" at CorsListener.php line 81 {"exception":"[object] (Error(code: 0): [] operator not supported for strings at /var/www/pim/www/vendor/bo-hub/ci-hub-api-bundle/src/EventListener/CorsListener.php:81)"} []
[2024-06-18T12:49:32.248536+02:00] php.CRITICAL: Uncaught Error: [] operator not supported for strings {"exception":"[object] (Error(code: 0): [] operator not supported for strings at /var/www/pim/www/vendor/bo-hub/ci-hub-api-bundle/src/EventListener/CorsListener.php:81)"} []
[2024-06-18T12:49:32.248536+02:00] php.CRITICAL: Uncaught Error: [] operator not supported for strings {"exception":"[object] (Error(code: 0): [] operator not supported for strings at /var/www/pim/www/vendor/bo-hub/ci-hub-api-bundle/src/EventListener/CorsListener.php:81)"} []
[2024-06-18T12:49:32.248596+02:00] app.ERROR: CIHub exception {"exception":"[object] (Error(code: 0): [] operator not supported for strings at /var/www/pim/www/vendor/bo-hub/ci-hub-api-bundle/src/EventListener/CorsListener.php:81)"} []
[2024-06-18T12:49:32.248780+02:00] php.CRITICAL: Uncaught Error: [] operator not supported for strings {"exception":"[object] (Error(code: 0): [] operator not supported for strings at /var/www/pim/www/vendor/bo-hub/ci-hub-api-bundle/src/EventListener/CorsListener.php:81)"} []
[2024-06-18T12:49:32.257975+02:00] php.CRITICAL: Uncaught Error: [] operator not supported for strings {"exception":"[object] (Error(code: 0): [] operator not supported for strings at /var/www/pim/www/vendor/bo-hub/ci-hub-api-bundle/src/EventListener/CorsListener.php:81)"} []
[2024-06-18T12:49:32.258237+02:00] request.CRITICAL: Uncaught PHP Exception Error: "[] operator not supported for strings" at CorsListener.php line 81 {"exception":"[object] (Error(code: 0): [] operator not supported for strings at /var/www/pim/www/vendor/bo-hub/ci-hub-api-bundle/src/EventListener/CorsListener.php:81)"} []
[2024-06-18T12:49:32.258312+02:00] app.ERROR: CIHub exception {"exception":"[object] (Error(code: 0): [] operator not supported for strings at /var/www/pim/www/vendor/bo-hub/ci-hub-api-bundle/src/EventListener/CorsListener.php:81)"} []
[2024-06-18T12:49:32.258438+02:00] php.CRITICAL: Uncaught Error: [] operator not supported for strings {"exception":"[object] (Error(code: 0): [] operator not supported for strings at /var/www/pim/www/vendor/bo-hub/ci-hub-api-bundle/src/EventListener/CorsListener.php:81)"} []

PHP Code:

image Looks like somone try to use the short array push syntax on a string

@labudzinski

How to reproduce

List assets in CI-HUB plugin for inDesign

Possible Solution

No response

Additional Context

No response

github-actions[bot] commented 2 weeks ago

Thank you for reporting this problem!

This is an open source project, and we rely on the community to help us diagnose and fix issues, as it is not possible to investigate and fix every issue reported to us via GitHub.

If possible, please create a pull request that fixes the problem you describe, along with appropriate tests. All pull requests will be promptly reviewed by the BrandOriented team.

Thank you very much!

betterapp commented 2 weeks ago
if($request->headers->has('Access-Control-Allow-Headers')) {
            $crossOriginHeaders['Access-Control-Allow-Headers'][] = $request->headers->get('Access-Control-Allow-Headers');
            $crossOriginHeaders['Access-Control-Allow-Headers'] = implode(',', $crossOriginHeaders['Access-Control-Allow-Headers']);
        }
        if($request->headers->has('Access-Control-Request-Method')) {
            $crossOriginHeaders['Access-Control-Allow-Methods'][] = $request->headers->get('Access-Control-Request-Method');
            $crossOriginHeaders['Access-Control-Allow-Methods'] = implode(',', $crossOriginHeaders['Access-Control-Allow-Methods']);
        }

It should looks like this:

if ($request->headers->has('Access-Control-Allow-Headers')) {
    $crossOriginHeaders['Access-Control-Allow-Headers'] = explode(',', $crossOriginHeaders['Access-Control-Allow-Headers']);
    $crossOriginHeaders['Access-Control-Allow-Headers'][] = $request->headers->get('Access-Control-Allow-Headers');
    $crossOriginHeaders['Access-Control-Allow-Headers'] = implode(',', $crossOriginHeaders['Access-Control-Allow-Headers']);
}
if ($request->headers->has('Access-Control-Request-Method')) {
    $crossOriginHeaders['Access-Control-Allow-Methods'] = $request->headers->get('Access-Control-Request-Method');
}
betterapp commented 2 weeks ago

@labudzinski

Second thing.

Generate thumbnail will never work with new code after 3.0.12 tag.

if (AssetProvider::CIHUB_PREVIEW_THUMBNAIL === $thumbnail && 'ciHub' === $configReader->getType()) {
    $defaultPreviewThumbnail = $this->getParameter('pimcore_ci_hub_adapter.default_preview_thumbnail');
    $elementFile = $element->getThumbnail($defaultPreviewThumbnail);
}

....

$storagePath = $this->getStoragePath($elementFile,
    $element->getId(),
    $element->getFilename(),
    $element->getRealPath(),
    $element->getChecksum()
);

if (!$storage->fileExists($storagePath)) {
  \Pimcore::getContainer()->get('messenger.bus.pimcore-core')->dispatch(
    new AssetPreviewImageMessage($element->getId())
  );
}

$response = $this->getNoThumbnailResponse();

As You can see $storagePath use thumbnail path for preview configuration $elementFile but this is generated only in local controller. Thumbnail is never generated in this path because this dispatch method

 \Pimcore::getContainer()->get('messenger.bus.pimcore-core')->dispatch(
      new AssetPreviewImageMessage($element->getId())
  );

does not know anything about this path and we always get image from

$response = $this->getNoThumbnailResponse();

betterapp commented 1 day ago

@labudzinski

Any update ? In next week we need to have this working because of demo. I need to know what is the progress and if it will be not fixed then I will use some patch direct in client instance.

NiklasBr commented 4 hours ago

@labudzinski I sent you an email a few days ago, perhaps you are on summer vacation?