(&self, bucket: &str, key: &str)
| 15 | #[async_trait] |
| 16 | impl GetFile for S3Client { |
| 17 | async fn get_file(&self, bucket: &str, key: &str) -> Result<Vec<u8>, GetObjectError> { |
| 18 | tracing::info!("get file bucket {}, key {}", bucket, key); |
| 19 | |
| 20 | let output = self.get_object().bucket(bucket).key(key).send().await; |
| 21 | |
| 22 | return match output { |
| 23 | Ok(response) => { |
| 24 | let bytes = response.body.collect().await.unwrap().to_vec(); |
| 25 | tracing::info!("Object is downloaded, size is {}", bytes.len()); |
| 26 | Ok(bytes) |
| 27 | } |
| 28 | Err(err) => { |
| 29 | let service_err = err.into_service_error(); |
| 30 | let meta = service_err.meta(); |
| 31 | tracing::info!("Error from aws when downloding: {}", meta.to_string()); |
| 32 | Err(service_err) |
| 33 | } |
| 34 | }; |
| 35 | } |
| 36 | } |
| 37 | |
| 38 | #[async_trait] |
no test coverage detected