AWSS3GetObjectRequest.ifModifiedSince doesn't seem to work

I cannot get ifModifiedSince to work. Here is my code:

func updateDatabase() { let objectRequest = AWSS3GetObjectRequest() objectRequest?.key = "wa/wa2016/idahoGmu.tiff" objectRequest?.bucket = bucketName let dateComponents = NSDateComponents() dateComponents.day = 10 dateComponents.month = 4 dateComponents.year = 2018 let date = NSCalendar.current.date(from: dateComponents as DateComponents) // TODO This isn't working. It grabs the file regardless of date. objectRequest?.ifModifiedSince = date let s3 = AWSS3.default() s3.getObject(objectRequest!).continueWith { (task) -> AnyObject! in if let error = task.error { print("Error: \(error.localizedDescription)") } if let result = task.result { let fileManager = FileManager.default let documents = Bundle.main.resourcePath let writePath = documents?.appending("/Content/idahoGmu.tiff") let output = result as AWSS3GetObjectOutput let fileData = output.body as! Data fileManager.createFile(atPath: writePath!, contents: fileData, attributes: nil) } return nil; } } 

Is there something I'm doing wrong with date formatting? I read this question about the date format (but now it is fixed as fixed): AWSS3GetObjectRequest ifModifiedSince does not work

When I print the date, it looks like this:

2018-04-10 07:00:00 +0000

+5
source share
1 answer

Perhaps you can replace ifModifiedSince with AWSS3HeadObjectRequest() , for example:

 // create a date to compare let formatter = DateFormatter() formatter.dateFormat = "yyyy/MM/dd" let checkDate = formatter.date(from: "2016/10/08") // make a request to AWS S3, to get a info of file let request = AWSS3HeadObjectRequest()! request.bucket = bucket request.key = key AWSS3.default().headObject(request).continue({ task -> Any? in if let result = task.result, ((result as AWSS3HeadObjectOutput) != nil) { let servDate = result.lastModified! if checkDate < servDate { // my file was modified after 2016/10/08 } else { // my file was NOT modified after 2016/10/08 } } } 

You can see an example where. I use something similar to creating a cache system in checkDownloadCache(bucket:key) .

+1
source

Source: https://habr.com/ru/post/1266185/


All Articles