package Ġuk . n hs . n hs x . vi ro logy . tok eng en Ċ Ċ import Ġuk . n hs . n hs x . core . ContentType . Companion . APPLICATION _ ZIP Ċ import Ġuk . n hs . n hs x . core . ContentType . Companion . TEXT _ CSV Ċ import Ġuk . n hs . n hs x . core . aws . s 3 . Aws S 3 Ċ import Ġuk . n hs . n hs x . core . aws . s 3 . Bucket Name Ċ import Ġuk . n hs . n hs x . core . aws . s 3 . ByteArray Source . Companion . from File Ċ import Ġuk . n hs . n hs x . core . aws . s 3 . ByteArray Source . Companion . from Utf 8 String Ċ import Ġuk . n hs . n hs x . core . aws . s 3 . Locator Ċ import Ġuk . n hs . n hs x . core . aws . s 3 . Object Key Ċ import Ġjava . net . URL Ċ import Ġjava . util .* Ċ Ċ class ĠV iro logy Processor Store ( ĊĠĠĠ Ġprivate Ġval Ġaws S 3 : ĠAws S 3 , ĊĠĠĠ Ġprivate Ġval Ġbucket Name : ĠBucket Name Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġstore Csv ( cta Tokens Csv : ĠC ta Tokens Csv ) Ġ{ ĊĠĠĠĠĠĠĠ Ġaws S 3 . upload ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLoc ator . of ( bucketName , ĠObject Key . of ( cta Tokens Csv . filename )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTEXT _ CSV , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom Utf 8 String ( cta Tokens Csv . content ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstore Zip ( cta Tokens Zip : ĠC ta Tokens Zip ) Ġ{ ĊĠĠĠĠĠĠĠ Ġaws S 3 . upload ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLoc ator . of ( bucketName , ĠObject Key . of ( cta Tokens Zip . filename )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAP PLICATION _ ZIP , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom File ( cta Tokens Zip . content ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġgenerate Signed URL ( filename : ĠString , Ġexpiration Date : ĠDate ): ĠURL ? Ġ= Ġaws S 3 . get Signed URL ( ĊĠĠĠĠĠĠĠ ĠLoc ator . of ( bucketName , ĠObject Key . of ( filename )), ĊĠĠĠĠĠĠĠ Ġexpiration Date ĊĠĠĠ Ġ). orElse ( null ) Ċ } Ċ