diff --git a/docker-compose.yml b/docker-compose.yml index 7adc57a..51e7d19 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -18,7 +18,7 @@ services: APP_ENV: development LOG: debug TZ: "Europe/Paris" - EDGE_KEY: "eyJzZXJ2ZXJVcmwiOiJodHRwOi8vbG9jYWxob3N0Ojg4ODciLCJhZ2VudElkIjoiMmVkZWFlYjctNWYwNi00MjI1LWIzNWItOGYyM2MwOTMyMTA2IiwibWFzdGVyS2V5QjY0IjoiMUh0djdtWCtYVkJxL0IzUEV2WDlZZjlQeUdVZW5oRHlXemo5THRqNW90WT0ifQ==" + EDGE_KEY: "eyJzZXJ2ZXJVcmwiOiJodHRwOi8vbG9jYWxob3N0Ojg4ODciLCJhZ2VudElkIjoiNWU1OGU2MGEtODhiMy00YTBjLWI0NDktNTQ3OWZhOTQzZDBkIiwibWFzdGVyS2V5QjY0IjoiQlhWM1hvbEM2NTZTVjdkTmdjV1BHUWxrKytycExJNmxHRGk3Q1BCNWllbz0ifQ==" #POOLING: 1 #DATABASES_CONFIG_FILE: "config.toml" extra_hosts: diff --git a/src/services/storage/providers/s3/mod.rs b/src/services/storage/providers/s3/mod.rs index 7479d48..dd6fccf 100644 --- a/src/services/storage/providers/s3/mod.rs +++ b/src/services/storage/providers/s3/mod.rs @@ -16,6 +16,9 @@ use aws_sdk_s3::types::{CompletedMultipartUpload, CompletedPart}; use futures::StreamExt; use std::pin::Pin; use std::sync::Arc; +use std::time::Duration; +use aws_config::retry::RetryConfig; +use aws_sdk_s3::config::retry::ReconnectMode; use tokio::fs; use tracing::{error, info}; use crate::services::backup::models::{BackupResult, UploadResult}; @@ -107,7 +110,14 @@ impl StorageProvider for S3Provider { info!("S3 endpoint to {}", &endpoint); + let retry_config = RetryConfig::standard() + .with_max_attempts(5) + .with_initial_backoff(Duration::from_millis(200)) + .with_max_backoff(Duration::from_secs(5)) + .with_reconnect_mode(ReconnectMode::ReuseAllConnections); + let sdk_config = s3::config::Builder::new() + .retry_config(retry_config) .credentials_provider(credentials) .region(region) .force_path_style(true)