За этим простым 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 в виде потока, если так, может кто-нибудь показать пример?
Кроме того, это хорошая идея? Если он подвержен ошибкам, я буду придерживаться моего текущего метода. Любой совет приветствуется.