Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

S3 Bucket Prefix doesn't work with Glide transformations

Open
#13,388 6 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
39/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
aws, laravel, php
Domain
backend

Research direction

Start by reading the ImageGenerator class, especially parseUrl and the doGenerateByUrl/doGenerateByAsset paths identified in the issue. Reproduce the reported behavior with a scoped S3 disk and a Glide tag using an asset URL, then check or add a regression test for that case. Done means the transformation handles the prefixed URL without duplicating the bucket prefix.

Written by the indexing model from the issue text.

Description

assets
Bug description

I added a folder to the root of the s3 bucket, and pointed the filesystem disks at said folder using the league/flysystem-path-prefixing package. So my filesystem looks something like this:

's3' => [
    'driver' => 's3',
    'key' => env('AWS_ACCESS_KEY_ID'),
    'secret' => env('AWS_SECRET_ACCESS_KEY'),
    'region' => env('AWS_DEFAULT_REGION', 'eu-west-2'),
    'bucket' => env('AWS_BUCKET'),
    'url' => env('AWS_URL').(env('AWS_PREFIX'),
    'endpoint' => env('AWS_ENDPOINT'),
    'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false),
    'visibility' => 'public',
],

'images' => [
    'driver' => 'scoped',
    'disk' => 's3',
    'prefix' => 'images',
],

'glide' => [
    'driver' => 'scoped',
    'disk' => 's3',
    'prefix' => 'glide'
]

The images folder works fine and I can see the assets fine in the control panel. However, the glide transformations only work if you use the asset value in the glide tag rather than the url. For example:

This works:
{{ glide:image w="100" h="100" }}
and produces:
https://{bucket}.s3.eu-west-2.amazonaws.com/{bucket_prefix}/glide/containers/images/{image_path}

But this doesn't work
{{ glide:image:url w="100" h="100" }}
and adds the bucket_prefix again after the http:
https://{bucket}.s3.eu-west-2.amazonaws.com/{bucket_prefix}/images/http/{bucket_prefix}/images/{image_path}

At first I thought I could change all of my glide tags to use the asset value rather than url, however, (as far as I'm aware) I can't do this when looping through a series of images.

It's obviously quite a niche bug as I'm sure most people don't need to use prefix.

How to reproduce

Create an S3 bucket with a root folder. Point the disks at the s3 bucket. Use the glide tag and use the asset url or id in the src.

Logs

Environment
Environment
Application Name: redacted
Laravel Version: 10.49.1
PHP Version: 8.3.26
Composer Version: 2.9.2
Environment: staging
Debug Mode: ENABLED
URL: redacted
Maintenance Mode: OFF

Cache
Config: NOT CACHED
Events: NOT CACHED
Routes: NOT CACHED
Views: NOT CACHED

Drivers
Broadcasting: log
Cache: statamic
Database: mysql
Logs: stack / single
Mail: smtp
Queue: sync
Session: file

Statamic
Addons: 8
Antlers: runtime
Sites: 1
Stache Watcher: Enabled
Static Caching: Disabled
Version: 4.58.3 PRO

Statamic Addons
anakadote/statamic-recaptcha: 1.0.18
mitydigital/iconamic: 1.1.6
studio1902/statamic-peak-browser-appearance: 1.0
studio1902/statamic-peak-commands: 1.27
studio1902/statamic-peak-seo: 8.17.0
studio1902/statamic-peak-tools: 2.5
tfd/statamic-aida: 1.0.1
xndbogdan/statamic-bard-text-color: 4.0.0
Installation

Starter Kit using via CLI

Additional details

Looking at the statamic core files I suspect it's an issue with the parseUrl in the ImageGenerator class, as doGenerateByUrl makes a call to this function but doGenerateByAsset doesn't.

Dominant language
PHP
Stars
4.9k
Forks
647
Avg merge
1d 9h
Merged PRs (30d)
102

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from statamic/cms

All issues in statamic/cms

Similar issues

More PHP issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.