bucket name can be passed on url path.  if bucket is not set then just use the request url path.  otherwise canonical resource header is not set correctly causing AWS to return a 403 forbidden