terricain / aioboto3

Wrapper to use boto3 resources with the aiobotocore async backend

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

S3 ChecksumAlgorithm

notmeta opened this issue · comments

commented
  • Async AWS SDK for Python version: 9.5.0
  • Python version: 3.7.11
  • Operating System: Windows WSL 2

Description

S3's new ChecksumAlgorithm doesn't seem to be implemented within aioboto3.

What I Did

async with session.client('s3') as s3_client:
    with open('my_file', 'rb') as data:
        await s3_client.put_object(Bucket="bucket_name", Body=data, Key="my_file", ChecksumAlgorithm="SHA256")  # works without ChecksumAlgorithm

Stacktrace

This also happens using upload_fileobj and passing 'ChecksumAlgorithm': 'SHA256' in ExtraArgs, although with a different stacktrace

The equivalent operations using boto3 work just fine, I suspect the new functionality just hasn't been implemented on aioboto3's side despite dependencies being updated.

So upload/download fileobj are custom functions replicating S3Transfer's sync stuff. put_object on the other hand I would have expected to work. I suspect aiobotocore needs to be updated here, I'll have a look.

Will move this to aiobotocore, as that needs to support this. Will have a look if its an easy fix there though.