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