ファイルをs3に保存しようとしています。ファイルはSource[ByteString, Any]
となっており、PutObjectRequest
の場合はInputStream
に変換する必要があります。次に、内容の長さとmd5をObjectMetadata
と計算します。私のコードに続いてエラーメッセージがあります。どんな入力も感謝します。ありがとう。scala akka-httpを使用してファイルをs3に保存できません
def uploadFile(source: Source[ByteString, _]) = {
val stream: InputStream = source.runWith(StreamConverters.asInputStream(FiniteDuration(3, TimeUnit.SECONDS)))
val metadata = new ObjectMetadata()
metadata.setContentLength(IOUtils.toByteArray(stream).length)
metadata.setContentMD5(Base64.encodeBase64(DigestUtils.md5(stream)).toString)
s3.putObject(new PutObjectRequest("bucketName", "key", stream, metadata))
}
スタックトレースエラーメッセージ:com.amazonaws.services.s3.model.AmazonS3Exception with message The Content-MD5 you specified was invalid.
提案していただきありがとうございます。これを今試みている – perry