Как я могу заархивировать объект в S3 Bucket с помощью Java AWS SDK

Я новичок в Amazon S3 и работаю над чем-то с S3. Я загрузил много файлов в корзину S3 с помощью Java. У меня есть объекты в S3 с такими именами, как Demo/demo1.txt, Demo/demo2.txt, Demo/demo3.txt. У меня есть почти 1000 отдельных файлов до demo1000.txt в папке Demo/. Я загрузил их с Java, используя приведенный ниже код.

s3Client.upload(bucketName, inputStream, objectKey, ObjectMetaData);

Как я могу заархивировать всю эту демонстрацию/объект, содержащий эти 1000 файлов, в самом S3, используя AWS API для Java?

Не было бы лучше, если бы вместо этого вы сначала загрузили zip-файл?

Federico klez Culloca 12.04.2023 12:39

Загрузите объекты, заархивируйте их локально, используя предпочтительную библиотеку zip для Java или каким-либо другим способом (например, с помощью инструмента zip), загрузите файл ZIP на S3, при необходимости удалите старые объекты.

jarmod 12.04.2023 14:25
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
2
73
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

AWS SDK для Java не предлагает операций для архивирования файлов. Однако вы можете написать собственную логику Java для выполнения этого варианта использования. Создание внутренней логики для динамического архивирования certian файлов (т.е. изображений) является допустимым вариантом использования.

Например, в приведенном ниже приложении для управления фоторесурсами файлы JPG извлекаются на основе тегов, выбранных пользователем. Затем соответствующие файлы извлекаются из корзины S3, помещаются в ZIP-файл, сохраняются в отдельной корзине, и ZIP-файл предварительно подписывается, чтобы пользователь мог получить файлы JPG, соответствующие тегам.

Обратитесь к приведенному ниже документу, который включает динамически сжатые файлы изображений. Логика Java, которую вы ищете, находится в примере Photo Asset Management, который вы можете найти здесь, в библиотеке кода AWS.

Создайте приложение для управления фоторесурсами, которое позволит пользователям управлять фотографиями с помощью ярлыков

См. метод public byte[] listBytesToZip() в классе S3Service.

Другие вопросы по теме