public static void DecryptUpload(this IS3Client s3Client, string bucketName, string key, string filePath, AesCryptoServiceProvider aes, FileMetadata metadata, int retryDelay = 1000) { while (true) { if (s3Client.TryDecryptUpload(bucketName, key, filePath, aes, metadata)) { return; } Thread.Sleep(retryDelay); } }