I'm not able to 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 am doing wrong with formatting the date? I read this issue about the date format (but it is reported as fixed now): AWSS3GetObjectRequest ifModifiedSince not working
When I print out the date it looks like this:
2018-04-10 07:00:00 +0000
Maybe do you can replace ifModifiedSince
to 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 a example where. I use something similar to create a cache system, in checkDownloadCache(bucket:key)
function.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With