This error is thrown by a failed .get()
function call on the StorageHandler
object I looked at the ._ _ dict _ _.keys() parameter list of the StorageHandler, and I don't see anyway to access the dictionary directly.
Bare with the spacing, I ocr’d this. The quotes and spacing is right
I placed the same key and secret in the global locations under s3{ } and this did not change anything
This is post script completion on the client end
Hold on should host be
` s3://ipaddr:9000?
credentials: [
specifies key/secret credentials to use when handli$
{
#
This will apply to all buckets in this host ($
host: "...:9000”
key: "*********"
secret: "******************"
multipart: false
secure: false
}
]
}
boto3 {
pool_connections: 512
max_ multipart_concurrency: 16
odd message though ... it should have said something about boto3
with ?
multipart: false
secure: false
If so, can you post here your aws.s3 section of the clearml.conf? (of course replacing the actual sensitive information with *s)
Nevermind, 😆 as you thought, seems I was just needing a few more f5s on my dashboard. Thank you very much for this
First let's verify the conf:
from clearml.config import config_obj
import json
print(json.dumps(config_obj.get("sdk"), indent=2))
what are you getting
Hi @<1538330703932952576:profile|ThickSeaurchin47>
Specifically I’m getting the error “could not access credentials”
Put your minio credentials here:
None
I upgraded to 1.9.3 and that didn’t change my error.
I created a new bucket with the name testbucket which didn’t change anything (I only updated this name in the output_uri parameter)
I tried curl on the minio:9000 which returns some html with AccessDenied as content
I tried curl on minio:9001 which returns the minio console html
Is that being used as a dictionary key?
clearml python version: 1.91
could you upgrade to 1.9.3 and try?
Minio is on the same server and the 9000 and 9001 ports are open for tcp
just to be clear, the machine that runs your clearml code can in fact access the minio on port 9000 ?
I tested with the latest and everything seems to work as expected.
BTW: regrading "bucket-name" , make sure it complies with the S3 standard, as a test try to change it to just "bucket" bi hyphens
I discovered part of the problem. I did not have boto3 installed on this conda env.
No error, just failure to upload it seems
>>> print(json.dumps(config_obj.get("sdk"), indent=2))
{
"storage": {
"cache": {
"default_base_dir": "~/.clearml/cache"
},
"direct_access": [
{
"url": "file://*"
}
]
},
"metrics": {
"file_history_size": 100,
"matplotlib_untitled_history_size": 100,
"images": {
"format": "JPEG",
"quality": 87,
"subsampling": 0
},
"tensorboard_single_series_per_graph": false
},
"network": {
"file_upload_retries": 3,
"metrics": {
"file_upload_threads": 4,
"file_upload_starvation_warning_sec": 120
},
"iteration": {
"max_retries_on_server_error": 5,
"retry_backoff_factor_sec": 10
}
},
"aws": {
"s3": {
"region": "",
"key": "*************",
"secret": "****************",
"use_credentials_chain": false,
"extra_args": {},
"credentials": [
{
"host": "***.***.**.***:9000",
"key": "********",
"secret": "*****************",
"multipart": false,
"secure": false
}
]
},
"boto3": {
"pool_connections": 512,
"max_multipart_concurrency": 16
}
},
"google": {
"storage": {}
},
"azure": {
"storage": {}
},
"log": {
"null_log_propagate": false,
"task_log_buffer_capacity": 66,
"disable_urllib3_info": true
},
"development": {
"task_reuse_time_window_in_hours": 72.0,
"vcs_repo_detect_async": true,
"store_uncommitted_code_diff": true,
"support_stopping": true,
"default_output_uri": "",
"force_analyze_entire_repo": false,
"suppress_update_message": false,
"detect_with_pip_freeze": false,
"log_os_environments": [],
"worker": {
"report_period_sec": 2,
"report_event_flush_threshold": 100,
"ping_period_sec": 30,
"log_stdout": true,
"console_cr_flush_period": 10,
"report_global_mem_used": false
}
},
"apply_environment": false,
"apply_files": false
}
It gave no import error, and I'm still having problems. I returned to my original script and it shows some file transfer print statements, but I don't see the files appearing in minio
Can you test with the credentials also in the global section
None
key: "************"
secret: "********************"
Also what's the clearml python package version
Yes I will give it a try and get back to you.
I am able to capture clearml experiments on the clearml server running on the same machine as the minio.
@<1538330703932952576:profile|ThickSeaurchin47> can you try the artifacts example:
None
and in this line do:
task = Task.init(project_name='examples', task_name='Artifacts example', output_uri="
")
@<1523701205467926528:profile|AgitatedDove14>
clearml python version: 1.91
python version: 3.9.15
the server is running the docker-compose on RHEL
Minio is on the same server and the 9000 and 9001 ports are open for tcp
I changed the default address space from 172.xxx.xxx.xx for docker to another space. This is not the issue as I can replicate this issue without this modified address space.
See configuration file below, I'm running the global section test now
aws {
s3 {
# S3 credentials, used for read/write access by various SDK elements
# The following settings will be used for any bucket not specified below in the "credentials" section
# ---------------------------------------------------------------------------------------------------
region: ""
# Specify explicit keys
key: ""
secret: ""
# Or enable credentials chain to let Boto3 pick the right credentials.
# This includes picking credentials from environment variables,
# credential file and IAM role using metadata service.
# Refer to the latest Boto3 docs
use_credentials_chain: false
# Additional ExtraArgs passed to boto3 when uploading files. Can also be set per-bucket under "credentials".
extra_args: {}
# ---------------------------------------------------------------------------------------------------
credentials: [
# specifies key/secret credentials to use when handling s3 urls (read or write)
{
# # This will apply to all buckets in this host (unless key/value is specifically provided for a given bucket)
host: "***.***.**.***:9000"
key: "****************"
secret: "********************************"
multipart: false
secure: false
}
]
}
boto3 {
pool_connections: 512
max_multipart_concurrency: 16
}
}
The exact error I am getting is:
line 1095, in output_uri
raise ValueError("Could not get access credentials for '{}' "
I’ll put in the actual copy paste later tonight thank you for the help
with the filepath leading to /clearml/task.py
And again thank you for the help with this.
You might only see it when the upload is done