В настоящее время у меня возникла проблема с настройкой liip_imagine. Моя установка:
Сначала я установил vichuploader с помощью Flysystem, и он работает, после этого я пытаюсь добавить liipimagine, но сгенерированный URL-адрес отсутствует на моем aws s3.
Домен сайта: mywebsite.com
Домен s3: assets.mywebsite.com.
URL-адрес, сгенерированный с помощью liipimagine: mywebsite.com/media/cache/resolve/md/facility/photo/big-img-65d760d9afe9a372425826.jpg
Эта часть работает хорошо, я могу загрузить изображение и отобразить его на своей ветке:
vic_uploader.yaml:
vich_uploader:
db_driver: orm
storage: flysystem
metadata:
type: attribute
mappings:
facility_photo:
upload_destination: s3.facility_photo
uri_prefix: '%asset_s3_url%/facility/photo'
namer: Vich\UploaderBundle\Naming\SmartUniqueNamer
inject_on_load: false
delete_on_update: true
delete_on_remove: true
Flysystem.yaml:
flysystem:
storages:
s3.facility_photo:
adapter: 'aws'
visibility: public
options:
client: 'Aws\S3\S3Client'
bucket: '%amazon_s3_bucket%'
prefix: 'facility/photo'
streamReads: true
сервисы.yaml:
services:
Aws\S3\S3Client:
arguments:
-
version: "%amazon_s3_version%"
region: "%amazon_s3_region%"
endpoint: "https://s3.%amazon_s3_region%.amazonaws.com"
credentials:
key: "%amazon_s3_key%"
secret: "%amazon_s3_secret%"
Но поэтому я добавил liipimagine:
liip_imagine:
resolvers:
cache_resolver_aws_s3:
aws_s3:
client_config:
credentials:
key: "%amazon_s3_key%"
secret: "%amazon_s3_secret%"
region: "%amazon_s3_region%"
version: "%amazon_s3_version%"
bucket: "%amazon_s3_bucket%"
get_options:
Scheme: https
put_options:
CacheControl: "max-age=86400"
loaders:
loader_aws_s3:
flysystem:
filesystem_service: 's3.facility_photo'
filter_sets :
cache: ~
md:
data_loader: loader_aws_s3
cache: cache_resolver_aws_s3
quality: 100
filters:
thumbnail: { size: [120, 90], mode: outbound }
Я попытался добавить фильтр «md» в свою ветку:
<img src = "{{ vich_uploader_asset(photo, 'imageFile', 'App\\Entity\\PhotoFacility') | imagine_filter('md') }}" />
Он не нашел URL-адрес s3, но нашел в домене моего сайта: mywebsite.com/media/cache/resolve/md/facility/photo/big-img-65d760d9afe9a372425826.jpg
Я забыл какую-то конфигурацию? Я следил за документами liipimage
Помощь будет приветствоваться, заранее благодарю за сотрудничество




У меня очень похожая настройка, за исключением того, что вместо этого я использую oneupFlysystemBundle, но я думаю, что это может помочь:
Я думаю, вам нужно изменить преобразователь на что-то вроде
resolvers:
flysystem_resolver:
flysystem:
filesystem_service: s3.facility_photo
root_url: '%uploads_base_url%'
cache_prefix: media/cache
cache: flysystem_resolver
и удалите ключ cache из наборов фильтров.
Также у меня есть
uploads_base_url: '%env(AWS_BUCKET_BASE_URL)%'
определено в services.yaml
Я пытаюсь без использования FlySystem, но AWS S3 Resolver, но столкнулся с той же проблемой.
Я обнаружил свою ошибку: это была проблема не с конфигурацией liipimagine, а с системой Fly.
В пакете League/flysystem League/flysystem-aws-s3-v3/AwsS3V3Adapter.php я проверил функцию fetchFileMetadata(), значение «Key», сгенерированное в:
$arguments = ['Bucket' => $this->bucket, 'Key' => $this->prefixer->prefixPath($path)];
facility/photo/facility/photo/big-img-65d760d9afe9a372425826.jpg (дубликат префикса «объект/фото»)
Таким образом, $result = $this->client->execute($command); генерирует ошибку, поскольку на запрос выдается ошибка.
Чтобы это исправить, мне просто пришлось удалить префикс из flysystem.yaml:
s3.facility_photo:
adapter: 'aws'
visibility: public
options:
client: 'Aws\S3\S3Client'
bucket: '%amazon_s3_bucket%'
# prefix: 'facility/photo'
streamReads: true
Потому что «объект/фото» уже было создано vich_uploader.yaml:
facility_photo:
upload_destination: s3.facility_photo
uri_prefix: '%asset_s3_url%/facility/photo'
namer: Vich\UploaderBundle\Naming\SmartUniqueNamer
inject_on_load: false
delete_on_update: true
delete_on_remove: true
После этого liipimagine получил функциональный ответ и сгенерировал нужную ссылку, используя мой файл s3.
Не стесняйтесь редактировать мой пост, чтобы исправить мои ошибки в английском языке! :)
Спасибо за ответ, я пробовал, но проблема осталась та же. Даже если я изменю значение
cache_prefix:, сгенерированный URL-адрес по-прежнему будет mywebsite.com/media/cache. Возможно ли, что конфигурация моего liip не загружена?