I migrated Magento 2 (version 2.4.6 deployed via Helm chart on Kubernetes) media folder to an AWS S3 bucket following the instructions from this documentation: https://experienceleague.adobe.com/docs/commerce-operations/configuration-guide/storage/remote-storage/remote-storage-aws-s3.html?lang=en. It worked successfully, and I observed that Magento had migrated the media folder to the bucket, only storing the cache locally in /var. However, later, when I attempted to use AWS CloudFront CDN to route all requests with /media/* in the path to S3, I noticed that it wasn't working as expected. Magento stopped displaying the images, and the image requests were returning a 403 error.

After some investigation, I realized that the problem was related to the image URLs containing a cache segment. For example, https://mysite.com/media/catalog/product/cache/b71e4bc1e267574dger6f046eb2626ba8af/1/1/image.jpg, and this cache folder with the specific ID didn't exist in my S3 bucket. Further testing revealed that if I didn't use CloudFront for media, allowing the requests to be processed by Magento, the cache folder with the correct ID was created in the S3 bucket, and the images were accessible. However, if I accessed the images through CloudFront to S3 without first going through Magento, the necessary folder wasn't being created.

This behavior of Magento raised some doubts. Is it normal behavior by default, or is there something wrong with the configuration? Is it possible to configure Magento to generate correct links without the cache segment? I believe that without this cache segment in the URL, everything should work correctly, as all the images are actually stored in the catalog/product folder, and Magento, for some reason, copies them into the cache folders.

  • could you please confirm if you have .htaccess in your pub/media folder
    – Pramod
    Commented Sep 8, 2023 at 15:50
  • @Pramod Yes, I have.
    – Soron
    Commented Sep 12, 2023 at 13:45


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.