I successfully create files in bucket of object storage in Linode. But while deleting all files in that storage it prompts an error.
import boto3
cfg = {
    "aws_access_key_id":"XXXXXXXXXXXXXXXXXX",
    "aws_secret_access_key": "XXXXXXXXXXXXXXXXXXXXXXXX",
    "endpoint_url": "*********************",
}
S3_BUCKET = "test"
# empty existing bucket
def empty_s3_bucket():
  client = boto3.client(
    's3',
    **cfg,
  )
  response = client.list_objects_v2(Bucket=S3_BUCKET)
  if 'Contents' in response:
    for item in response['Contents']:
      print('deleting file', item['Key'])
      client.delete_object(Bucket=S3_BUCKET, Key=item['Key'])
      while response['KeyCount'] == 1000:
        response = client.list_objects_v2(
          Bucket=S3_BUCKET,
          StartAfter=response['Contents'][0]['Key'],
        )
        for item in response['Contents']:
          print('deleting file', item['Key'])
          client.delete_object(Bucket=S3_BUCKET, Key=item['Key'])
empty_s3_bucket()
Above code cannot delete all files in that object storage however can delete single file by using different logic. Following error generates on above code:
Traceback (most recent call last):
  File "c:/********/linode_empty.py", line 30, in <module>
    empty_s3_bucket()
  File "c:/*********/linode_empty.py", line 16, in empty_s3_bucket
    response = client.list_objects_v2(Bucket=S3_BUCKET)        
  File "C:\********\venv\lib\site-packages\botocore\client.py", line 357, in _api_call
    return self._make_api_call(operation_name, kwargs)
  File "C:\*******\venv\lib\site-packages\botocore\client.py", line 676, in _make_api_call
    raise error_class(parsed_response, operation_name)
botocore.errorfactory.NoSuchKey: An error occurred (NoSuchKey) when calling the ListObjectsV2 operation: Unknown
I tried for different codes suggested in old post about this on stackoverflow Amazon S3 boto - how to delete folder? but got same error.