@demobox The logic this PR adds is whether temp signed URLs work. The added expect tests and existing live tests already verify that the new logic works as expected. Bear in mind that regular (i.e. without expiry) signed get/put requests use the Authorized header and temp signed/get put requests use the query string parameters so both code paths are already getting exercised.

Checking whether there's a pre-existing query parameter is IMO outside the scope of this patch. As the implementation stands (indedendent of this patch) it should never happen and I'm happy to add a check for this in a separate patch if you'd like.