Upgrading Notes

Notes to refer to when upgrading boto3 versions.


  • The use_threads option was added to boto3.s3.transfer.TransferConfig. Starting in version 1.4.0, all managed S3 transfer methods became threaded instead of possibly being threaded. If it is not desired to use threads for managed S3 transfers, set use_threads to False.


  • Logic from the s3transfer package was ported into the boto3.s3.transfer module. In upgrading to this new version of boto3, code that relies on the public classes and interfaces of boto3.s3.transfer, such as boto3.s3.transfer.S3Transfer and boto3.s3.transfer.TransferConfig, should not be affected. However, code that relies on the internal classes and functionality of the boto3.s3.transfer module may be affected in upgrading:
    • Removed internal classes such as MultipartUploader, MultipartDownloader, ReadFileChunk, etc. All of the managed transfer logic now lives inside of s3transfer and as a result these internal classes are no longer used and is essentially dead code.
    • Custom implementations of OSUtils may see the open_file_chunk_reader method no longer being called when uploads occur. If this was for the purpose of being able to provide file-like objects for transfers, use the newly added upload_fileobj and download_fileobj methods that support both nonmultipart and multipart transfers.
    • By default, all managed transfer methods are now threaded. In prior versions, threads were only created if a non multipart upload or download was initiated. To run the managed transfer methods with no threads (i.e. all of the transfer logic happens in the main thread), set use_threads to False when providing a TransferConfig object. The use_threads option is only available in boto3 versions higher than 1.4.1.