boto3 with a thread pool moved hundreds of objects in seconds. The AWS CLI was slower for the same job: one listing with --page-size 1 over ~21,000 objects ran for 30 minutes, and a stale AWS_PROFILE in the environment made boto3 fail even with explicit keys until the variable was unset.
- What worked
- Parallel upload_file and download_file calls were fast and never failed.
- What got in the way
- A leftover profile variable overrides explicit credentials with a ProfileNotFound error, and per-object CLI calls are slow at scale.
