brain-score / brain-score/vision

cannot pass `/` in bucket name

Open
#2,159 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
193
Forks
105
Avg merge
10h 48m
Merged PRs (30d)
10

Description

The tutorial example uses `"brainscore-storage/brainio-brainscore"` as the bucket name.

https://github.com/brain-score/vision/blob/118df8f4a417e54c4762fccf7552f638cf886791/brainscore_vision/data/ferguson2024/data_packaging/data_packaging.py#L58

This however throws an error:
```
Invalid bucket name "brainscore-storage/brainio-brainscore": Bucket name must match the regex "^[a-zA-Z0-9.\-_]{1,255}$"
```
Full stack trace
```
init_data = package_stimulus_set(catalog_name=None, proto_stimulus_set=stimuli,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/braintree/home/msch/miniconda3/envs/direct-causality/lib/python3.11/site-packages/brainscore_core/supported_data_standards/brainio/packaging.py", line 227, in package_stimulus_set
csv_object_properties = upload_to_s3(str(target_csv_path), bucket_name, target_s3_key=csv_file_name)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/braintree/home/msch/miniconda3/envs/direct-causality/lib/python3.11/site-packages/brainscore_core/supported_data_standards/brainio/packaging.py", line 96, in upload_to_s3
client.upload_file(str(source_file_path),
File "/braintree/home/msch/miniconda3/envs/direct-causality/lib/python3.11/site-packages/botocore/context.py", line 123, in wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/braintree/home/msch/miniconda3/envs/direct-causality/lib/python3.11/site-packages/boto3/s3/inject.py", line 175, in upload_file
return transfer.upload_file(
^^^^^^^^^^^^^^^^^^^^^
File "/braintree/home/msch/miniconda3/envs/direct-causality/lib/python3.11/site-packages/boto3/s3/transfer.py", line 373, in upload_file
future.result()
File "/braintree/home/msch/miniconda3/envs/direct-causality/lib/python3.11/site-packages/s3transfer/futures.py", line 111, in result
return self._coordinator.result()
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/braintree/home/msch/miniconda3/envs/direct-causality/lib/python3.11/site-packages/s3transfer/futures.py", line 287, in result
raise self._exception
File "/braintree/home/msch/miniconda3/envs/direct-causality/lib/python3.11/site-packages/s3transfer/tasks.py", line 142, in __call__
return self._execute_main(kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/braintree/home/msch/miniconda3/envs/direct-causality/lib/python3.11/site-packages/s3transfer/tasks.py", line 165, in _execute_main
return_value = self._main(**kwargs)
^^^^^^^^^^^^^^^^^^^^
File "/braintree/home/msch/miniconda3/envs/direct-causality/lib/python3.11/site-packages/s3transfer/upload.py", line 796, in _main
client.put_object(Bucket=bucket, Key=key, Body=body, **extra_args)
File "/braintree/home/msch/miniconda3/envs/direct-causality/lib/python3.11/site-packages/botocore/client.py", line 602, in _api_call
return self._make_api_call(operation_name, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/braintree/home/msch/miniconda3/envs/direct-causality/lib/python3.11/site-packages/botocore/context.py", line 123, in wrapper
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/braintree/home/msch/miniconda3/envs/direct-causality/lib/python3.11/site-packages/botocore/client.py", line 1019, in _make_api_call
api_params = self._emit_api_params(
^^^^^^^^^^^^^^^^^^^^^^
File "/braintree/home/msch/miniconda3/envs/direct-causality/lib/python3.11/site-packages/botocore/client.py", line 1138, in _emit_api_params
self.meta.events.emit(
File "/braintree/home/msch/miniconda3/envs/direct-causality/lib/python3.11/site-packages/botocore/hooks.py", line 412, in emit
return self._emitter.emit(aliased_event_name, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/braintree/home/msch/miniconda3/envs/direct-causality/lib/python3.11/site-packages/botocore/hooks.py", line 256, in emit
return self._emit(event_name, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/braintree/home/msch/miniconda3/envs/direct-causality/lib/python3.11/site-packages/botocore/hooks.py", line 239, in _emit
response = handler(**kwargs)
^^^^^^^^^^^^^^^^^
File "/braintree/home/msch/miniconda3/envs/direct-causality/lib/python3.11/site-packages/botocore/handlers.py", line 322, in validate_bucket_name
raise ParamValidationError(report=error_msg)
botocore.exceptions.ParamValidationError: Parameter validation failed:
Invalid bucket name "brainscore-storage/brainio-brainscore": Bucket name must match the regex "^[a-zA-Z0-9.\-_]{1,255}$" or be an ARN matching the regex "^arn:(aws).*:(s3|s3-object-lambda):[a-z\-0-9]*:[0-9]{12}:accesspoint[/:][a-zA-Z0-9\-.]{1,63}$|^arn:(aws).*:s3-outposts:[a-z\-0-9]+:[0-9]{12}:outpost[/:][a-zA-Z0-9\-]{1,63}[/:]accesspoint[/:][a-zA-Z0-9\-]{1,63}$"
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Start at brainscore_vision/data/ferguson2024/data_packaging/data_packaging.py#L58 and inspect how the example passes the bucket name into package_stimulus_set and the S3 upload path. Run the packaging example to reproduce the validation error, then verify that the example uses valid bucket and object-name inputs and completes without the bucket-name exception.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, python
Domain
cloud
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.