aiohttp-s3-client
aiohttp-s3-client copied to clipboard
Add copy/rename; Content-Type inference; tests/docs
This pull request introduces several improvements and new features to the S3 client, with a particular focus on content-type inference, object operations (copy and rename), and code readability. The most notable changes are the addition of server-side copy and rename operations, automatic content-type inference for uploads, and refactoring for better maintainability and clarity.
New S3 Object Operations
- Added a new
copymethod toS3Clientthat performs server-side object copying within or between buckets using the S3CopyObjectAPI. This method supports metadata replacement and content-type updates. - Introduced a
renamemethod toS3Client, which moves an object by copying it to a new key and then deleting the source. This operation is non-atomic and handles error reporting. - Updated the
README.mdto document the newcopyandrenameoperations with example usage.
Content-Type Inference
- Implemented automatic
Content-Typeinference for uploads (including multipart) using Python'smimetypeslibrary, falling back toapplication/octet-streamif the type cannot be determined. This is applied input,post,put_file,put_file_multipart, andput_multipartmethods. - Added documentation in
README.mddescribing how content-type inference works and when it is applied.
I tidied up the code a bit, please excuse my little obsession with neatness.