Embora este seja um código c #, ele mostra as configurações de tempo limite e de tamanho de letra que estou usando para copiar com êxito arquivos de até 15 GB. Talvez o AutoCloseStream precise ser definido como falso.
using (FileStream fileStream = File.OpenRead(file.FullName))
{
TransferUtilityUploadRequest request = new TransferUtilityUploadRequest()
{
AutoCloseStream = false,
Timeout = 1200000,
BucketName = Settings.Bucket,
Key = file.Name,
InputStream = fileStream,
PartSize = 6291456 // 6MB
};
Console.Write("{0}...", file.Name);
Begin();
tu.Upload(request);
End();
Console.WriteLine("Done. [{0}]", Duration());
}