Closed vmorris closed 5 years ago
version: ibm_cos_sdk-2.4.3
I'm following the documentation here: https://console.bluemix.net/docs/services/cloud-object-storage/libraries/python.html#init-config
Attempting to create an ibm_boto3.client results in the following trace:
Traceback (most recent call last): File "./upload.py", line 20, in <module> client = boto3.client('s3', endpoint_url=credentials.get('service_endpoint'), **creds) File "/home/vmorris/.virtualenvs/cos-stuff/lib/python2.7/site-packages/ibm_boto3/__init__.py", line 94, in client return _get_default_session().client(*args, **kwargs) File "/home/vmorris/.virtualenvs/cos-stuff/lib/python2.7/site-packages/ibm_boto3/session.py", line 324, in client token_manager=token_manager, config=config) File "/home/vmorris/.virtualenvs/cos-stuff/lib/python2.7/site-packages/ibm_botocore/session.py", line 900, in create_client client_config=config, api_version=api_version) File "/home/vmorris/.virtualenvs/cos-stuff/lib/python2.7/site-packages/ibm_botocore/client.py", line 86, in create_client verify, credentials, scoped_config, client_config, endpoint_bridge) File "/home/vmorris/.virtualenvs/cos-stuff/lib/python2.7/site-packages/ibm_botocore/client.py", line 328, in _get_client_args verify, credentials, scoped_config, client_config, endpoint_bridge) File "/home/vmorris/.virtualenvs/cos-stuff/lib/python2.7/site-packages/ibm_botocore/args.py", line 85, in get_client_args client_cert=new_config.client_cert) File "/home/vmorris/.virtualenvs/cos-stuff/lib/python2.7/site-packages/ibm_botocore/endpoint.py", line 261, in create_endpoint raise ValueError("Invalid endpoint: %s" % endpoint_url) ValueError: Invalid endpoint: s3.us-east.cloud-object-storage.appdomain.cloud
Digging into ibm_botocore/endpoint.py, I see the call to is_valid_endpoint_url here: https://github.com/IBM/ibm-cos-sdk-python-core/blob/master/ibm_botocore/utils.py#L831
ibm_botocore/endpoint.py
is_valid_endpoint_url
This does
parts = urlsplit(endpoint_url) hostname = parts.hostname
Looking at urlsplit now... Here's the result of the call to urlsplit:
urlsplit
SplitResult(scheme='', netloc='', path=u's3.us-east.cloud-object-storage.appdomain.cloud', query='', fragment='')
Notice that there is no hostname key in the result.
hostname
So, am I doing something wrong?
eeeh, I just read the docstring:
Must have at least a scheme and a hostname.
Disregard please! This appears to be working okay after adding https:// to the endpoint.
https://
version: ibm_cos_sdk-2.4.3
I'm following the documentation here: https://console.bluemix.net/docs/services/cloud-object-storage/libraries/python.html#init-config
Attempting to create an ibm_boto3.client results in the following trace:
Digging into
ibm_botocore/endpoint.py
, I see the call tois_valid_endpoint_url
here: https://github.com/IBM/ibm-cos-sdk-python-core/blob/master/ibm_botocore/utils.py#L831This does
Looking at urlsplit now... Here's the result of the call to
urlsplit
:Notice that there is no
hostname
key in the result.So, am I doing something wrong?