S3 Bucket Prefix doesn't work with Glide transformations
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 39/100
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- PHP
- Stelle
- 4.9k
- Fork
- 647
- Merge medio
- 1g 8h
- PR unite (30g)
- 100
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di statamic/cms
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
assets
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
accessibility
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
I maintainer di solito rispondono entro 1 giorno
-
antlers
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di statamic/cms
Issue simili
-
FrameworkBundle SecurityBundle
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
symfony/symfony-docs#23277 ·
I maintainer di solito rispondono entro 3 giorni
-
[Sync EN] hard link does not need special permissionsForse già presa @lacatoire l’ha presa oggi. Apertasync-en
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
I maintainer di solito rispondono entro 1 giorno
-
sync-en
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 76/100
I maintainer di solito rispondono entro 4 giorni
-
bug mod:appointments
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
3pontos-tech/gil-benefits#303 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
I maintainer di solito rispondono entro 1 giorno