New connection string format

For most services, endpoint and credential are required pairs. Take s3 service as an example, we will have a connection string like:

s3://bucket_name/path/to/work_dir?endpoint=http:127.0.0.1:8080&credential=hmac:access_key:secret_key

Maybe we can improve the format into:

s3://hmac:access_key:secret_key@http:127.0.0.1:8080/bucket_name/path/to/work_dir

And we can support setting default credential/endpoint protocol for s3, so we will get:

s3://access_key:secret_key@127.0.0.1:8080/bucket_name/path/to/work_dir

Let’s take ftp as another example:

From

ftp:///path/to/workdir?endpoint=tcp:127.0.0.1:21&credential=basic:username:password

To

ftp://username:password@127.0.0.1:21/path/to/work_dir