Мне нужно сохранить двоичное (byte[]
) содержимое (файл PDF) на S3.
Я не хочу, чтобы печатная копия существовала на жестком диске, pdf создается на лету, а затем его нужно отправить на S3.
Java AWS SDK AmazonS3.putObject()
требует File
ввода подписи метода, как я могу передать свое двоичное содержимое напрямую, не сохраняя его на жесткий диск?
Как вы создаете файл PDF? Вы делаете преобразование в byte[]
самостоятельно (т. е. путем передачи ByteArrayOutputStream
) или это делает библиотека?
Вы можете использовать следующий метод для хранения файлов aws.
PutObjectResult putObject(String bucketName, String key, InputStream input, ObjectMetadata metadata)
Aws также предоставляет следующий перегруженный метод, который можно использовать в зависимости от его пригодности.
PutObjectResult putObject(PutObjectRequest putObjectRequest)
PutObjectResult putObject(String bucketName, String key, File file)
PutObjectResult putObject(String bucketName, String key, String content)
Вы можете преобразовать byte[] в InputStream и передать описанный выше метод. См. ниже javadocs для aws.
https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/AmazonS3.html
вы можете использовать временный файл.
File tempFile = File. createTempFile("hello", ".tmp");
пожалуйста, взгляните на docs.oracle.com/javase/8/docs/api/java/io/…