> You have to provide the following information whenever possible.

In case s3 object has `:` in it's path, ClickHouse fails to request it from gcs because of mismatched signature.

**Describe what's wrong**

Clickhouse 21.8

```
 executeQuery: Code: 499, e.displayText() = DB::Exception: The request signature we calculated does not match the signature you provided. Check your Google secret key and signing method.: While executing S3 (version 21.8.11.4) (from 127.0.0.1:47668) (in query: SELECT * FROM s3('https://storage.googleapis.com/BUCKET/PATH/*/*', 'XXXXXXXXX', 'XXXXXXXX' ,TSV, 'raw String');), Stack trace (when copying this message, always include the lines below):

0. DB::Exception::Exception(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int, bool) @ 0x8fd379a in /usr/bin/clickhouse
1. DB::ReadBufferFromS3::initialize() @ 0xff8190b in /usr/bin/clickhouse
2. DB::ReadBufferFromS3::nextImpl() @ 0xff80b1b in /usr/bin/clickhouse
3. DB::TabSeparatedRowInputFormat::readRow(std::__1::vector<COW<DB::IColumn>::mutable_ptr<DB::IColumn>, std::__1::allocator<COW<DB::IColumn>::mutable_ptr<DB::IColumn> > >&, DB::RowReadExtension&) @ 0x111bcfb9 in /usr/bin/clickhouse
4. DB::IRowInputFormat::generate() @ 0x110e51c8 in /usr/bin/clickhouse
5. DB::ISource::tryGenerate() @ 0x1106f235 in /usr/bin/clickhouse
6. DB::ISource::work() @ 0x1106ee1a in /usr/bin/clickhouse
7. DB::InputStreamFromInputFormat::readImpl() @ 0xe45e8ff in /usr/bin/clickhouse
8. DB::IBlockInputStream::read() @ 0xfdd05e7 in /usr/bin/clickhouse
9. DB::StorageS3Source::generate() @ 0x10b367b6 in /usr/bin/clickhouse
10. DB::ISource::tryGenerate() @ 0x1106f235 in /usr/bin/clickhouse
11. DB::ISource::work() @ 0x1106ee1a in /usr/bin/clickhouse
12. DB::SourceWithProgress::work() @ 0x112402db in /usr/bin/clickhouse
13. ? @ 0x110a98dd in /usr/bin/clickhouse
14. DB::PipelineExecutor::executeStepImpl(unsigned long, unsigned long, std::__1::atomic<bool>*) @ 0x110a6471 in /usr/bin/clickhouse
15. ? @ 0x110aaf16 in /usr/bin/clickhouse
16. ThreadPoolImpl<std::__1::thread>::worker(std::__1::__list_iterator<std::__1::thread, void*>) @ 0x901441f in /usr/bin/clickhouse
17. ? @ 0x9017d03 in /usr/bin/clickhouse
18. start_thread @ 0x9609 in /usr/lib/x86_64-linux-gnu/libpthread-2.31.so
19. __clone @ 0x122293 in /usr/lib/x86_64-linux-gnu/libc-2.31.so


0 rows in set. Elapsed: 0.223 sec.

Received exception from server (version 21.8.11):
Code: 499. DB::Exception: Received from localhost:9000. DB::Exception: The request signature we calculated does not match the signature you provided. Check your Google secret key and signing method.: While executing S3.

[chi--0-0-0] 2021.11.23 18:45:48.195319 [ 163 ] {26e03d2b-2a70-4562-a252-8d739d3b3b59} <Debug> AWSClient: Make request to: https://storage.googleapis.com/BUCKET/PATH/2021-11-23/2021-11-23_16:52:00_000000000000.csv
[chi--0-0-0] 2021.11.23 18:45:48.195336 [ 181 ] {26e03d2b-2a70-4562-a252-8d739d3b3b59} <Trace> AWSClient: Request Successfully signed
[chi--0-0-0] 2021.11.23 18:45:48.195365 [ 181 ] {26e03d2b-2a70-4562-a252-8d739d3b3b59} <Debug> AWSClient: Make request to: https://storage.googleapis.com/BUCKET/PATH/2021-11-23/2021-11-23_14:23:51_000000000000.csv
[chi--0-0-0] 2021.11.23 18:45:48.203754 [ 163 ] {26e03d2b-2a70-4562-a252-8d739d3b3b59} <Trace> AWSClient: Receiving response...
[chi--0-0-0] 2021.11.23 18:45:48.203752 [ 181 ] {26e03d2b-2a70-4562-a252-8d739d3b3b59} <Trace> AWSClient: Receiving response...
[chi--0-0-0] 2021.11.23 18:45:48.274493 [ 163 ] {26e03d2b-2a70-4562-a252-8d739d3b3b59} <Debug> AWSClient: Response status: 403, Forbidden
[chi--0-0-0] 2021.11.23 18:45:48.274591 [ 163 ] {26e03d2b-2a70-4562-a252-8d739d3b3b59} <Debug> AWSClient: Received headers: X-GUploader-UploadID: XXXXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXX-2rA; Content-Type: application/xml; charset=UTF-8; Content-Length: 901; Date: Tue, 23 Nov 2021 18:45:48 GMT; Expires: Tue, 23 Nov 2021 18:45:48 GMT; Cache-Control: private, max-age=0; Server: UploadServer; Alt-Svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"; Connection: close;
[chi--0-0-0] 2021.11.23 18:45:48.274655 [ 163 ] {26e03d2b-2a70-4562-a252-8d739d3b3b59} <Trace> AWSClient: Request returned error. Attempting to generate appropriate error codes from response
[chi--0-0-0] 2021.11.23 18:45:48.274738 [ 163 ] {26e03d2b-2a70-4562-a252-8d739d3b3b59} <Trace> AWSClient: AWSErrorMarshaller: Error response is <?xml version="1.0"?>
```

It clearly visible that provided creds are correct (`s3(...,'XXXXXXXXX', 'XXXXXXXX')`), because ClickHouse was able to execute listObjects api call and tried to get specific object.

```
[chi--0-0-0] 2021.11.23 18:45:48.195319 [ 163 ] {26e03d2b-2a70-4562-a252-8d739d3b3b59} <Debug> AWSClient: Make request to: https://storage.googleapis.com/BUCKET/PATH/2021-11-23/2021-11-23_16:52:00_000000000000.csv
```
);
            }
            else
            {
                session = makeHTTPSession(target_uri, timeouts,  true);
            }
            Poco::Net::HTTPRequest poco_request(Poco::Net::HTTPRequest::HTTP_1_1);
            /** Aws::Http::URI will encode URL in appropriate way for AWS S3 server.
              * Poco::URI also does that correctly but it's not compatible with AWS.
              * For example, `+` symbol will not be converted to `%2B` by Poco and would
              * be received as space symbol.
              *
              * References:
              * https://github.com/aws/aws-sdk-java/issues/1946
              * https://forums.aws.amazon.com/thread.jspa?threadID=55746
              *
              * Example:
              * Suppose we are requesting a file: abc+def.txt
              * To correctly do it, we need to construct an URL containing either:
              * - abc%2Bdef.txt
              * this is also technically correct:
              * - abc+def.txt
              * but AWS servers don't support it properly, interpreting plus character as whitespace
              * although it is in path part, not in query string.
              * e.g. this is not correct:
              * - abc%20def.txt
              *
              * Poco will keep plus character as is (which is correct) while AWS servers will treat it as whitespace, which is not what is intended.
              * To overcome this limitation, we encode URL with "Aws::Http::URI" and then pass already prepared URL to Poco.
              */