Skip to content

Error "A header you provided implies functionality that is not implemented." with boto3 1.36 #765

@sdiemer

Description

@sdiemer

Hello,

Since the release 1.36 of boto3, we are not able to use s3proxy for at least the put_object and delete_objects API calls.
In the examples below, the version 1.36.3 of boto3 was used.

The errors are:

put_object:

  File "/opt/src/tests/unit/storage/conftest.py", line 218, in object_storage_dir
    client.put_object(Bucket=bucket, Key=f'resources/{name}/file.txt', Body=b'Test content')
  File "/opt/venv/lib/python3.11/site-packages/botocore/client.py", line 569, in _api_call
    return self._make_api_call(operation_name, kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/venv/lib/python3.11/site-packages/botocore/client.py", line 1023, in _make_api_call
    raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (NotImplemented) when calling the PutObject operation:
A header you provided implies functionality that is not implemented.

delete_objects:

  File "/opt/src/tests/unit/storage/conftest.py", line 266, in _delete_files
    client.delete_objects(Bucket=bucket, Delete={'Objects': [{'Key': key1}, {'Key': key2}], 'Quiet': True})
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/venv/lib/python3.11/site-packages/botocore/client.py", line 569, in _api_call
    return self._make_api_call(operation_name, kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/venv/lib/python3.11/site-packages/botocore/client.py", line 1023, in _make_api_call
    raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (NotImplemented) when calling the DeleteObjects operation:
A header you provided implies functionality that is not implemented.

The client was defined as follows:

    client = boto3.client(
        's3',
        aws_access_key_id='remote-identity',
        aws_secret_access_key='remote-credential',
        endpoint_url='s3-dev-bucket',
        region_name='us-east-1')

From what I have found, the problem is caused by this change:
boto/boto3#4392

Regards

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions