Оказывается, это поможет. Все дело в кодировании, благодаря помощи @KunLun. В моем сценарии файл - это составной файл (pdf), который передается в aws через POST на URL.
Base64.Encoder enc = Base64.getEncoder();
byte[] encbytes = enc.encode(file.getBytes());
for (int i = 0; i < encbytes.length; i++)
{
System.out.printf("%c", (char) encbytes[i]);
if (i != 0 && i % 4 == 0)
System.out.print(' ');
}
Base64.Decoder dec = Base64.getDecoder();
byte[] barray2 = dec.decode(encbytes);
InputStream fis = new ByteArrayInputStream(barray2);
PutObjectResult objectResult = s3client.putObject("xxx",
file.getOriginalFilename(), fis, data);
Еще один очень Важный момент, который необходимо включить, заключается в том, что параметры API-шлюза должны быть правильно настроены для поддержки двоичных типов данных. AWS Консоль -> Шлюз API -> Настройки -> включить то, что у меня есть ниже на прилагаемом фото ![](https://i.stack.imgur.com/EPcd7.png)