Загрузка пустого файла в S3 с помощью Java - PullRequest
0 голосов
/ 09 мая 2018

Ошибка при попытке передать пустые данные в S3.
Ниже приведена ошибка:

java.lang.RuntimeException:
java.lang.RuntimeException:
java.lang.RuntimeException:
shaded.com.amazonaws.services.s3.model.AmazonS3Exception:
Предоставленный вами XML не был правильно сформирован или не соответствует нашей опубликованной схеме (Сервис: Amazon S3; Код состояния: 400; Код ошибки: MalformedXML; Идентификатор запроса: BC194D061F65DC3B), Идентификатор расширенного запроса S3: RjC6LY05Gj93iQTWAdjL / JcQBrl / NzMt749DOwpVsTJ2YN63A0EQmFWaOX08 = 100x070 = 0

Есть ли способ создать пустой файл в S3 через поток вывода Java SDK?

1 Ответ

0 голосов
/ 21 августа 2018

Абсолютно! Предполагая, что вы выполняете составную часть (в соответствии с лучшими практиками), вы захотите выделить специальный случай для файлов с нулевым байтом:

AmazonS3 s3Client = /* your S3 client builder technique */
if ( contentLength == 0 ) {
  s3Client.putObject( bucketName, targetKeyName, 
        new FileInputStream( file ), objectMetadata );
} else {
  // Do your multipart upload per usual
}

При многоэлементной загрузке выдается исключение MalformedXML при запросе нулевых частей, но это явно не вызывается в сообщении. Также возможно, что другая часть вашего запроса также искажена, например, если ObjectMetadata поврежден, хотя обычно в этих случаях вы получите более четкое сообщение об исключении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...