This commit is contained in:
Untone 2024-09-23 17:45:10 +03:00
parent 685698bc66
commit a85a5c5dd5

View File

@ -195,36 +195,37 @@ impl AppState {
if filename.is_empty() { if filename.is_empty() {
eprintln!("пустое имя файла"); eprintln!("пустое имя файла");
} } else {
// Проверяем, существует ли файл на Storj S3
// Проверяем, существует ли файл на Storj S3 match check_file_exists(&self.s3_client, &self.s3_bucket, filename)
match check_file_exists(&self.s3_client, &self.s3_bucket, filename) .await
.await {
{ Ok(false) => {
Ok(false) => { // Сохраняем маппинг пути
// Сохраняем маппинг пути if let Err(e) =
if let Err(e) = self.save_path_by_filekey(filename, &key).await self.save_path_by_filekey(filename, &key).await
{ {
eprintln!(
"Ошибка сохранения маппинга для файла {}: {:?}",
filename, e
);
} else {
println!(
"Маппинг для файла {} успешно сохранен.",
filename
);
}
}
Ok(true) => {
println!("Файл {} уже существует в Storj.", filename);
}
Err(e) => {
eprintln!( eprintln!(
"Ошибка сохранения маппинга для файла {}: {:?}", "Ошибка при проверке файла {} на Storj: {:?}",
filename, e filename, e
); );
} else {
println!(
"Маппинг для файла {} успешно сохранен.",
filename
);
} }
} }
Ok(true) => {
println!("Файл {} уже существует в Storj.", filename);
}
Err(e) => {
eprintln!(
"Ошибка при проверке файла {} на Storj: {:?}",
filename, e
);
}
} }
} }
} }
@ -269,12 +270,12 @@ impl AppState {
) -> Result<u64, actix_web::Error> { ) -> Result<u64, actix_web::Error> {
let mut redis = self.redis.clone(); let mut redis = self.redis.clone();
let quota_key = format!("quota:{}", user_id); let quota_key = format!("quota:{}", user_id);
// Проверяем, существует ли ключ в Redis // Проверяем, существует ли ключ в Redis
let exists: bool = redis.exists::<_, bool>(&quota_key).await.map_err(|_| { let exists: bool = redis.exists::<_, bool>(&quota_key).await.map_err(|_| {
ErrorInternalServerError("Failed to check if user quota exists in Redis") ErrorInternalServerError("Failed to check if user quota exists in Redis")
})?; })?;
// Если ключ не существует, создаем его с начальным значением и устанавливаем TTL // Если ключ не существует, создаем его с начальным значением и устанавливаем TTL
if !exists { if !exists {
redis redis
@ -285,13 +286,13 @@ impl AppState {
})?; })?;
return Ok(bytes); return Ok(bytes);
} }
// Если ключ существует, инкрементируем его значение на заданное количество байт // Если ключ существует, инкрементируем его значение на заданное количество байт
let new_quota: u64 = redis let new_quota: u64 = redis
.incr::<_, u64, u64>(&quota_key, bytes) .incr::<_, u64, u64>(&quota_key, bytes)
.await .await
.map_err(|_| ErrorInternalServerError("Failed to increment user quota in Redis"))?; .map_err(|_| ErrorInternalServerError("Failed to increment user quota in Redis"))?;
Ok(new_quota) Ok(new_quota)
} }
} }