From 6c2245ec98d65d87591354c980579f23fba8038e Mon Sep 17 00:00:00 2001 From: Untone Date: Tue, 12 Nov 2024 12:10:14 +0300 Subject: [PATCH] check-both --- src/handlers/proxy.rs | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/src/handlers/proxy.rs b/src/handlers/proxy.rs index d6bbcfc..21411ec 100644 --- a/src/handlers/proxy.rs +++ b/src/handlers/proxy.rs @@ -156,8 +156,26 @@ pub async fn proxy_handler( Ok(None) => { warn!("No stored path found in DB for: {}", filekey); let ct_parts = content_type.split("/").collect::>(); - let filepath = format!("production/{}/{}.{}", ct_parts[0], base_filename, ext); - warn!("Looking up file with path: {} in bucket: {}", filepath, state.bucket); + + // Создаем два варианта пути - с оригинальным расширением и с нижним регистром + let filepath_lower = format!("production/{}/{}.{}", ct_parts[0], base_filename, ext); + let filepath_orig = format!("production/{}/{}.{}", ct_parts[0], base_filename, extension); + + warn!("Looking up files with paths: {} or {} in bucket: {}", + filepath_lower, filepath_orig, state.bucket); + + // Проверяем существование файла с обоими вариантами расширения + let exists_in_aws_lower = check_file_exists(&state.aws_client, &state.bucket, &filepath_lower).await?; + let exists_in_aws_orig = check_file_exists(&state.aws_client, &state.bucket, &filepath_orig).await?; + + let filepath = if exists_in_aws_orig { + filepath_orig + } else if exists_in_aws_lower { + filepath_lower + } else { + // Если файл не найден ни с одним из расширений, используем нижний регистр по умолчанию + filepath_lower + }; let exists_in_storj = check_file_exists(&state.storj_client, &state.bucket, &filepath).await?; warn!("Checking existence in Storj: {}", exists_in_storj);