За этим простым API TransferManager проделывает большую работу за вас. В зависимости от размера и источника данных для загрузки, TransferManager настраивает алгоритм, который он использует для обработки вашего перевода, чтобы добиться максимальной производительности и надежности. По возможности, загрузки разбиты на несколько частей, поэтому несколько частей могут быть отправлены параллельно для повышения пропускной способности. В дополнение к более высокой пропускной способности, этот подход также обеспечивает более надежные передачи, поскольку ошибка ввода-вывода в любом отдельном фрагменте означает, что SDK требуется только повторно передать один затронутый фрагмент, а не всю передачу.

тоящее время я использую следующее для загрузки файла на S3:

File file = new File(my_file_path);

AmazonS3 s3 = new AmazonS3Client(new PropertiesCredentials(cred));

s3.putObject(new PutObjectRequest("folder", key, file));

Выше работает нормально, но я хочу сохранитьBufferedImage на S3, чтобы сбрить несколько секунд из моего приложения, но я понятия не имею, как это сделать? Вот как я сейчас сохраняю свое изображение в файл:

image = new BufferedImage(rawImage.width, rawImage.height, BufferedImage.TYPE_INT_ARGB);

File file = new File(filepath); 

ImageIO.write(image, "png", file);

Есть ли способ сделать запись напрямую в Amazon S3 в виде потока, если так, может кто-нибудь показать пример?

Кроме того, это хорошая идея? Если он подвержен ошибкам, я буду придерживаться моего текущего метода. Любой совет приветствуется.

Ответы на вопрос(2)

Ваш ответ на вопрос