Add copy/rename; Content-Type inference; tests/docs #37
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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
copymethod toS3Clientthat performs server-side object copying within or between buckets using the S3CopyObjectAPI. This method supports metadata replacement and content-type updates.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.README.mdto document the newcopyandrenameoperations with example usage.Content-Type Inference
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.README.mddescribing how content-type inference works and when it is applied.