S3 Bucket Prefix doesn't work with Glide transformations
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 39/100
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- PHP
- Star
- 4.9k
- Fork
- 647
- Merge trung bình
- 1 ngày 19 giờ
- Pull request đã merge (30 ngày)
- 108
Chuẩn bị môi trường
Dự án này không cung cấp dev container, Dockerfile hay hướng dẫn đóng góp, nên bạn cần tự thiết lập môi trường: hãy bắt đầu từ README và xem hướng dẫn đóng góp lần đầu của chúng tôi để biết các bước chung.
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của statamic/cms
-
preferences
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Make native filesystem directory permissions configurable to support shared POSIX ACL accessĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
Maintainer thường phản hồi trong vòng 1 ngày
-
accessibility
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
Maintainer thường phản hồi trong vòng 1 ngày
-
antlers
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
Maintainer thường phản hồi trong vòng 1 ngày
-
caching nocache
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 42/100
statamic/cms#15643 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
TYPO3BestPractices/tea#2409 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
api-platform/core#8690 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
No Code Attached Yet
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
joomla/joomla-cms#48626 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
DorsetDigital/silverstripe-schema-manager#26 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
sync-en
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 4 ngày