From 2474d82cea03b7319f1dea6f805720869ca4189f Mon Sep 17 00:00:00 2001 From: emelinda Date: Mon, 10 Aug 2026 01:44:53 +0300 Subject: [PATCH] =?UTF-8?q?Istio:=20=D0=BC=D0=B0=D1=80=D1=88=D1=80=D1=83?= =?UTF-8?q?=D1=82=D1=83=20/media/=20=D0=BD=D1=83=D0=B6=D0=B5=D0=BD=20rewri?= =?UTF-8?q?te,=20=D0=B8=D0=BD=D0=B0=D1=87=D0=B5=20=D0=BA=D0=BB=D1=8E=D1=87?= =?UTF-8?q?=20=D1=83=D0=B5=D0=B7=D0=B6=D0=B0=D0=B5=D1=82=20=D1=81=20=D0=BF?= =?UTF-8?q?=D1=80=D0=B5=D1=84=D0=B8=D0=BA=D1=81=D0=BE=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit s3-proxy не срезает префикс сам — он отображает путь URL прямо в ключ объекта. Маршрут отдавал ему путь как есть, поэтому он искал media/orthophotos/..., тогда как в бакете лежит orthophotos/..., и отвечал NoSuchKey (404). Проверено на существующем объекте через сам s3-proxy: /orthophotos/NTG230721_DEM/14/10920/4937.png -> 200, 17831 байт /media/orthophotos/NTG230721_DEM/14/10920/4937.png -> 404 NoSuchKey В корне бакета лежат geotiff_dems/, las_pointclouds/, orthophotos/, pointclouds/ — префикса media/ нет вовсе. --- infrastructure/istio-config/aero/istio-config.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/infrastructure/istio-config/aero/istio-config.yaml b/infrastructure/istio-config/aero/istio-config.yaml index a507ea5..e94e57c 100644 --- a/infrastructure/istio-config/aero/istio-config.yaml +++ b/infrastructure/istio-config/aero/istio-config.yaml @@ -107,8 +107,17 @@ spec: # Range-запросы, которых у S3 API «как есть» нет. Backend # формирует ссылки вида /media/, поэтому маршрут должен # идти ПЕРЕД правилом для /. + # + # rewrite ОБЯЗАТЕЛЕН. s3-proxy не срезает префикс сам — он + # отображает путь URL прямо в ключ объекта. Без rewrite он + # искал бы media/orthophotos/... , тогда как в бакете лежит + # orthophotos/... , и отвечал бы + # NoSuchKey: The specified key does not exist (404) + # Проверено на живом объекте: /orthophotos/... отдаёт 200, + # /media/orthophotos/... — 404. - path: prefix: /media/ + rewrite: / service: s3-proxy-svc.django.svc.cluster.local port: 80 # API микрофронтенда workflows. Висит на домене платформы, а