SDK uploads are significantly slower than uploading directly to S3 - in my measurements, I can upload at 10-15mB/s from home via the S3 console, but only about 900 kB/s via the SDK (both 2018 and 2019 SDKs). This is worse at higher latency - via mozilla VPN to Japan, I upload at around 1.5-1.8 mB/s via S3 console, and 245 kB/s via the SDK.
Looking at the SDK upload traffic in wireshark (see screenshot), S3 is offering a ~815 kilobyte TCP window, but the SDK is only writing fast enough to have 70 kilobytes in flight (from my home connection). It's unclear to me whether your HTTP library is artificially setting a limit on in-flight bytes for some reason, but there very clearly is something wrong here.

Photo Viewer

View photos in a modal