@@ -2,8 +2,9 @@ use aws_lambda_events::event::s3::{S3Entity, S3Event};
2
2
use aws_sdk_s3:: Client as S3Client ;
3
3
use handlebars:: Handlebars ;
4
4
use lambda_runtime:: { run, service_fn, Error , LambdaEvent } ;
5
+ use log:: * ;
5
6
use routefinder:: Router ;
6
- use tracing:: * ;
7
+ // use tracing::*;
7
8
8
9
use std:: collections:: HashMap ;
9
10
@@ -22,7 +23,7 @@ async fn function_handler(event: LambdaEvent<S3Event>, client: &S3Client) -> Res
22
23
23
24
for entity in entities_from ( event. payload ) ? {
24
25
debug ! ( "Processing {entity:?}" ) ;
25
- if let Some ( source_key) = entity. object . url_decoded_key {
26
+ if let Some ( source_key) = entity. object . key {
26
27
let parameters = add_builtin_parameters ( captured_parameters ( & router, & source_key) ?) ;
27
28
let output_key = hb. render ( "output" , & parameters) ?;
28
29
info ! ( "Copying {source_key:?} to {output_key:?}" ) ;
@@ -70,25 +71,12 @@ async fn main() -> Result<(), Error> {
70
71
*/
71
72
72
73
fn entities_from ( event : S3Event ) -> Result < Vec < S3Entity > , anyhow:: Error > {
73
- let expected_event = Some ( "ObjectCreated:Put" . into ( ) ) ;
74
74
Ok ( event
75
75
. records
76
76
. into_iter ( )
77
- // only bother with the record if the eventName is `objectCreated:Put`
78
77
// only bother with the record if the key is present
79
- . filter ( |record| record. event_name == expected_event && record. s3 . object . key . is_some ( ) )
80
- . map ( |record| {
81
- let mut entity = record. s3 ;
82
- info ! ( "Mapping the entity: {entity:?}" ) ;
83
- /*
84
- * For whatever reasson aws_lambda_events doesn't properly make this url_decoded_key
85
- * actually available
86
- */
87
- if let Ok ( decoded) = urlencoding:: decode ( & entity. object . key . as_ref ( ) . unwrap ( ) ) {
88
- entity. object . url_decoded_key = Some ( decoded. into_owned ( ) ) ;
89
- }
90
- entity
91
- } )
78
+ . filter ( |r| r. s3 . object . key . is_some ( ) )
79
+ . map ( |r| r. s3 )
92
80
. collect ( ) )
93
81
}
94
82
@@ -159,24 +147,7 @@ mod tests {
159
147
let event = load_test_event ( ) ?;
160
148
let objects = entities_from ( event) ?;
161
149
assert_eq ! ( objects. len( ) , 1 ) ;
162
- assert ! ( objects[ 0 ] . object. url_decoded_key. is_some( ) ) ;
163
-
164
- if let Some ( key) = & objects[ 0 ] . object . url_decoded_key {
165
- assert_eq ! ( key, "test/key" ) ;
166
- } else {
167
- assert ! ( false , "Failed to decode the key properly" ) ;
168
- }
169
-
170
- Ok ( ( ) )
171
- }
172
-
173
- #[ test]
174
- fn entities_from_with_nonput ( ) -> Result < ( ) , anyhow:: Error > {
175
- let mut event = load_test_event ( ) ?;
176
- event. records [ 0 ] . event_name = Some ( "s3:ObjectRemoved:Delete" . into ( ) ) ;
177
-
178
- let objects = entities_from ( event) ?;
179
- assert_eq ! ( objects. len( ) , 0 ) ;
150
+ assert ! ( objects[ 0 ] . object. key. is_some( ) ) ;
180
151
181
152
Ok ( ( ) )
182
153
}
0 commit comments