Найти

Вы здесь:

Amazon S3 - объектное хранилище. Для работы с S3 (Amazon S3 или любым S3-совместимым хранилищем — MinIO, Yandex Object Storage и т.п.) в Java чаще всего используют AWS SDK for Java.

Создать бакет (bucket):

String bucketName = "my-java-bucket";
try {
    s3.createBucket(CreateBucketRequest.builder()
        .bucket(bucketName)
        .build());
    System.out.println("Бакет создан: " + bucketName);
} catch (S3Exception e) {
    System.err.println("Ошибка: " + e.awsErrorDetails().errorMessage());
}
    


Адресация в S3 по имени бакета и ключу.

Загрузить файл.
Можно загрузить из локального файла, из строки или потока:

s3.putObject(PutObjectRequest.builder()
    .bucket(bucketName)
    .key("docs/report.pdf")
    .build(),
    RequestBody.fromFile(Paths.get("/home/user/report.pdf")));

// Или загрузка строки
s3.putObject(PutObjectRequest.builder()
    .bucket(bucketName)
    .key("hello.txt")
    .build(),
    RequestBody.fromString("Hello, S3!"));
    

Получить объект.

s3.getObject(GetObjectRequest.builder()
    .bucket(bucketName)
    .key("docs/report.pdf")
    .build());
    

Удалить объект.

s3.deleteObject(DeleteObjectRequest.builder()
    .bucket(bucketName)
    .key("docs/report.pdf")
    .build());
    

Удалить БАКЕТ.

DeleteBucketRequest deleteRequest = DeleteBucketRequest.builder()
    .bucket(bucketName)
    .build();
s3.deleteBucket(deleteRequest);
    

В SDK есть методы для работы с метаданными объекта (metadata), для получения списка объектов в бакете (listObjectsV2).

MinIO.
MinIO - это open-source объектное хранилище, совместимое с Amazon S3 API. Выпускается под лицензией Apache v2. (MinIo для самых маленьких (habr))
Установка в linux:

wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
./minio server /data
    



Ссылки:
https://www.baeldung.com/java-aws-s3