Хранить содержимое байта в S3 - PullRequest
1 голос
/ 29 мая 2019

Мне нужно сохранить двоичное (byte[]) содержимое (файл PDF) на S3.

Я не хочу, чтобы на жестком диске существовала печатная копия, PDF создается на лету, а затем его нужно отправить на S3.

Java AWS SDK AmazonS3.putObject() требует File введите подпись метода, как я могу передать двоичное содержимое напрямую, не сохраняя его на жесткий диск?

Ответы [ 2 ]

3 голосов
/ 29 мая 2019

SDK предлагает метод, который принимает InputStream и ObjectMetadata вместо File. Например, есть putObject(String bucketName, String key, InputStream input, ObjectMetadata metadata).

Используйте один из предоставленных методов и укажите ByteArrayInputStream, если вы не хотите создавать файлы.

1 голос
/ 29 мая 2019

Для хранения файлов aws можно использовать следующий метод.

PutObjectResult putObject (String bucketName, ключ String, ввод InputStream, метаданные ObjectMetadata)

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

https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/model/PutObjectRequest.html

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