I’m trying to log downloads of CarrierWave resources hosted at S3, so I have a controller method that performs a redirect to the remote_url, and creates a new database record to store the request details. But when I access this endpoint with Safari, I am seeing a strange double log for the request. Here’s what the request looks like in the logs:
I, [2015-08-09T18:22:01.463646 #44996] INFO -- : Started GET "/sources/28803-facsimile-pdf-cobbett-selections-from-cobbetts-political-works-vol-2/download" for 173.161.197.5 at 2015-08-09 18:22:01 +0000 I, [2015-08-09T18:22:01.465244 #44996] INFO -- : Processing by SourcesController#download as HTML I, [2015-08-09T18:22:01.465311 #44996] INFO -- : Parameters: {"id"=>"28803-facsimile-pdf-cobbett-selections-from-cobbetts-political-works-vol-2"} I, [2015-08-09T18:22:01.468033 #44996] INFO -- : Redirected to http://lf-oll.s3.amazonaws.com/titles/2689/Cobbett_1627-02_Bk.pdf I, [2015-08-09T18:22:01.471834 #44996] INFO -- : Completed 403 Forbidden in 6ms (ActiveRecord: 1.1ms) I, [2015-08-09T18:22:01.690815 #44996] INFO -- : Started GET "/sources/28803-facsimile-pdf-cobbett-selections-from-cobbetts-political-works-vol-2/download" for 173.161.197.5 at 2015-08-09 18:22:01 +0000 I, [2015-08-09T18:22:01.692262 #44996] INFO -- : Processing by SourcesController#download as HTML I, [2015-08-09T18:22:01.692324 #44996] INFO -- : Parameters: {"id"=>"28803-facsimile-pdf-cobbett-selections-from-cobbetts-political-works-vol-2"} I, [2015-08-09T18:22:01.694572 #44996] INFO -- : Redirected to http://lf-oll.s3.amazonaws.com/titles/2689/Cobbett_1627-02_Bk.pdf I, [2015-08-09T18:22:01.697804 #44996] INFO -- : Completed 302 Found in 5ms (ActiveRecord: 1.2ms)
And the result is two rows in my database, one for the 403, and the other for the 302.
My suspicion is that Safari is doing some introspection on the file to determine its file type, since I know that it doesn’t trust headers. Does anyone have any other ideas?
Thanks,
Walter