@@ -22,7 +22,7 @@ use axum::{
2222    Router ,  TypedHeader , 
2323} ; 
2424use  bytes:: Bytes ; 
25- //  use cached::{proc_macro::io_cached, stores::DiskCacheBuilder};
25+ use  cached:: { proc_macro:: io_cached,  stores:: DiskCacheBuilder } ; 
2626
2727use  std:: sync:: Arc ; 
2828use  tokio:: sync:: SemaphorePermit ; 
@@ -160,6 +160,37 @@ async fn schema() -> &'static str {
160160    "Hello, world!" 
161161} 
162162
163+ // /// Download an object from S3 
164+ // /// 
165+ // /// Requests a byte range if `offset` or `size` is specified in the request. 
166+ // /// 
167+ // /// # Arguments 
168+ // /// 
169+ // /// * `client`: S3 client object 
170+ // /// * `request_data`: RequestData object for the request 
171+ // #[tracing::instrument( 
172+ //     level = "DEBUG", 
173+ //     skip(client, request_data, resource_manager, mem_permits) 
174+ // )] 
175+ // async fn download_object<'a>( 
176+ //     client: &s3_client::S3Client, 
177+ //     request_data: &models::RequestData, 
178+ //     resource_manager: &'a ResourceManager, 
179+ //     mem_permits: &mut Option<SemaphorePermit<'a>>, 
180+ // ) -> Result<Bytes, ActiveStorageError> { 
181+ //     let range = s3_client::get_range(request_data.offset, request_data.size); 
182+ //     let _conn_permits = resource_manager.s3_connection().await?; 
183+ //     client 
184+ //         .download_object( 
185+ //             &request_data.bucket, 
186+ //             &request_data.object, 
187+ //             range, 
188+ //             resource_manager, 
189+ //             mem_permits, 
190+ //         ) 
191+ //         .await 
192+ // } 
193+ 
163194/// Download an object from S3 
164195/// 
165196/// Requests a byte range if `offset` or `size` is specified in the request. 
@@ -170,30 +201,34 @@ async fn schema() -> &'static str {
170201/// * `request_data`: RequestData object for the request 
171202#[ tracing:: instrument(  
172203    level = "DEBUG" ,  
173-     skip( client,  request_data,  resource_manager,  mem_permits)  
204+     // skip(client, request_data, resource_manager, mem_permits)  
205+     skip( client,  request_data)  
206+ ) ] 
207+ #[ io_cached(  
208+     map_error = r##"|e| ActiveStorageError::CacheError{ error: format!("{:?}", e) }"## ,  
209+     disk = true ,  
210+     create = r##"{ DiskCacheBuilder::new("test-cache").set_disk_directory("./").build().expect("valid disk cache builder") }"## ,  
211+     key = "String" ,  
212+     convert = r##"{ format!("{:?}", request_data) }"##  
174213) ] 
175- // #[io_cached( 
176- //     map_error = r##"|e| ActiveStorageError::CacheError{ error: format!("{:?}", e) }"##, 
177- //     disk = true, 
178- //     create = r##"{ DiskCacheBuilder::new("test-cache").set_disk_directory("./").build().expect("valid disk cache builder") }"##, 
179- //     key = "String", 
180- //     convert = r##"{ format!("{:?},{:?},{:?},{:?}", client, request_data, resource_manager, mem_permits) }"## 
181- // )] 
182214async  fn  download_object < ' a > ( 
183215    client :  & s3_client:: S3Client , 
184216    request_data :  & models:: RequestData , 
185-     resource_manager :  & ' a  ResourceManager , 
186-     mem_permits :  & mut  Option < SemaphorePermit < ' a > > , 
217+     //  resource_manager: &'a ResourceManager,
218+     //  mem_permits: &mut Option<SemaphorePermit<'a>>,
187219)  -> Result < Bytes ,  ActiveStorageError >  { 
188220    let  range = s3_client:: get_range ( request_data. offset ,  request_data. size ) ; 
189-     let  _conn_permits = resource_manager. s3_connection ( ) . await ?; 
221+     // let _conn_permits = resource_manager.s3_connection().await?; 
222+     // println!("{:?},{:?}", client, request_data); 
223+     // TODO: Add cache hit / miss statistics? 
224+     println ! ( "Downloading object" ) ; 
190225    client
191226        . download_object ( 
192227            & request_data. bucket , 
193228            & request_data. object , 
194229            range, 
195-             resource_manager, 
196-             mem_permits, 
230+             //  resource_manager,
231+             //  mem_permits,
197232        ) 
198233        . await 
199234} 
@@ -232,8 +267,8 @@ async fn operation_handler<T: operation::Operation>(
232267    let  data = download_object ( 
233268        & s3_client, 
234269        & request_data, 
235-         & state. resource_manager , 
236-         & mut  _mem_permits, 
270+         //  &state.resource_manager,
271+         //  &mut _mem_permits,
237272    ) 
238273    . instrument ( tracing:: Span :: current ( ) ) 
239274    . await ?; 
0 commit comments