尝试将空数据流式传输到S3时出错 以下是错误:
了java.lang.RuntimeException:
了java.lang.RuntimeException:
了java.lang.RuntimeException:
shaded.com.amazonaws.services.s3.model.AmazonS3Exception:
您提供的XML格式不正确或未针对我们发布的架构进行验证 (服务:Amazon S3;状态代码:400;错误代码:MalformedXML;请求ID:BC194D061F65DC3B),S3扩展请求ID:RjC6LY05Gj93iQTWAdjL / JcQBrl / NzMt749DOwpVsTJ2YN63A0EQmFWaBXxwHzBo + / a8A3MoP70 =
有没有办法通过Java SDK输出流在S3中创建一个空文件?
答案 0 :(得分:1)
绝对!假设您要执行多部分操作(按照最佳做法),那么您将需要为零字节文件划分一个特殊情况:
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损坏,尽管通常在这种情况下,您会得到更清晰的异常消息。