AWS SDK для Java
AWS SDK для Java
С помощью AWS SDK для Java вы создадите бакет, загрузите в него объекты, очистите содержимое бакета и удалите бакет.
Подготовка к работе
- Создайте сервисный аккаунт.
- Назначьте сервисному аккаунту роли, которые нужны для вашего проекта, например storage.editor на бакет — для работы с конкретным бакетом, или на каталог — для работы со всеми бакетами в каталоге. Подробнее о ролях см. на странице Управление доступом с помощью Yandex Identity and Access Management.
- Создайте статический ключ доступа.
Примечание
Сервисный аккаунт может просматривать список бакетов только в том каталоге, в котором он был создан.
Сервисный аккаунт может выполнять действия с объектами в бакетах, которые созданы в каталогах, отличных от каталога сервисного аккаунта. Для этого назначьте сервисному аккаунту роли на нужный каталог или бакет в нем.
Установка
Важно
31 декабря 2025 года прекращается поддержка AWS SDK для Java версии 1.x. Чтобы продолжать получать новые функции и обновления безопасности, рекомендуется перейти на AWS SDK для Java версии 2.x.
-
Установите Apache Maven
для сборки проекта. -
Создайте проект
согласно инструкции из документации AWS.Ниже приведена структура созданного проекта:
getstarted ├── README.md ├── pom.xml └── src ├── main │ ├── java │ │ └── org │ │ └── example │ │ ├── App.java │ │ ├── DependencyFactory.java │ │ └── Handler.java │ └── resources │ └── simplelogger.properties └── test └── java └── org └── example └── HandlerTest.java 10 directories, 7 files
-
Внесите изменения в код проекта
согласно инструкции из документации AWS.
Для установки AWS SDK для Java v.1.x воспользуйтесь инструкцией
Настройка
-
Создайте директорию для хранения аутентификационных данных и перейдите в нее:
Для macOS и Linux:
mkdir ~/.aws/
Для Windows:
mkdir C:\Users\<имя_пользователя>\.aws\
-
В директории
.aws
создайте файлcredentials
с аутентификационными данными для Object Storage и скопируйте в него следующую информацию:[default] aws_access_key_id = <идентификатор_статического_ключа> aws_secret_access_key = <секретный_ключ>
-
Создайте файл
config
с параметрами региона по умолчанию и скопируйте в него следующую информацию:[default] region = ru-central1 endpoint_url = https://storage.yandexcloud.net
Примечание
Некоторые приложения, предназначенные для работы с Amazon S3, не позволяют указывать регион, поэтому Object Storage принимает также значение
us-east-1
.
Для доступа к Object Storage используйте эндпоинт https://storage.yandexcloud.net
.
Изменение эндпоинта
-
В директории
/src/main/java/org/example
откройте файлDependencyFactory.java
и измените классDependencyFactory
:public class DependencyFactory { private DependencyFactory() {} public static S3Client s3Client() { return S3Client.builder() .endpointOverride(URI.create("https://storage.yandexcloud.net")) .httpClientBuilder(ApacheHttpClient.builder()) .build(); } }
-
Запустите код
согласно инструкции из документации AWS.
Другие примеры использования AWS SDK для Java вы можете найти в репозитории с примерами
В директории aws-java-sdk/samples/AmazonS3
в архиве с дистрибутивом SDK находится код, который нужно изменить.
Чтобы подключиться к Object Storage замените в примере код:
AmazonS3 s3 = AmazonS3ClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(credentials))
.withRegion("us-west-2")
.build();
на
AmazonS3 s3 = AmazonS3ClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(credentials))
.withEndpointConfiguration(
new AmazonS3ClientBuilder.EndpointConfiguration(
"storage.yandexcloud.net","ru-central1"
)
)
.build();
Другие примеры использования AWS SDK для Java вы можете найти в репозитории с примерами