AWS SDK for Java
The AWS SDK for Java
You will use the AWS SDK for Java to create a bucket, load it with objects, clean up its contents, and delete it.
Getting started
- Create a service account.
- Assign to the service account the roles required for your project, e.g,
storage.editor
. For more information about roles, see Access management with Yandex Identity and Access Management. - Create a static access key.
Note
A service account is only allowed to view a list of buckets in the folder it was created in.
A service account can perform actions with objects in buckets that are created in folders different from the service account folder. To enable this, assign the service account roles for the appropriate folder or its bucket.
Installation
Warning
Starting December 31, 2025, support for the AWS SDK for Java version 1.x will be discontinued. We recommend that you upgrade to the AWS SDK for Java version 2.x to keep receiving new features and security updates.
-
Install Apache Maven
to build your project. -
Create a project
as described in the AWS guide.Below is the structure of the created project:
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
-
Edit the project code
as described in the AWS guide.
To install the AWS SDK for Java v.1.x, use the instructions
Setup
-
Create a directory to store the authentication data in and navigate to it:
For macOS and Linux:
mkdir ~/.aws/
For Windows:
mkdir C:\Users\<username>\.aws\
-
In the
.aws
directory, create a file namedcredentials
with credentials for Object Storage and copy the following data into it:[default] aws_access_key_id = <static_key_ID> aws_secret_access_key = <secret_key>
-
Create a file named
config
with the default region settings and copy the following information to it:[default] region = ru-central1 endpoint_url = https://storage.yandexcloud.net
Note
Some apps designed to work with Amazon S3 do not allow you to specify the region; this is why Object Storage may also accept the
us-east-1
value.
To access Object Storage, use the https://storage.yandexcloud.net
endpoint.
Updating an endpoint
-
In the
/src/main/java/org/example
directory, open theDependencyFactory.java
file and modify theDependencyFactory
class:public class DependencyFactory { private DependencyFactory() {} public static S3Client s3Client() { return S3Client.builder() .endpointOverride(URI.create("https://storage.yandexcloud.net")) .httpClientBuilder(ApacheHttpClient.builder()) .build(); } }
-
Run the code
as described in the AWS guide.
See this repository
In the aws-java-sdk/samples/AmazonS3
directory, the SDK distribution archive contains the code you need to modify.
To connect to Object Storage, replace the code in the example:
AmazonS3 s3 = AmazonS3ClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(credentials))
.withRegion("us-west-2")
.build();
to
AmazonS3 s3 = AmazonS3ClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(credentials))
.withEndpointConfiguration(
new AmazonS3ClientBuilder.EndpointConfiguration(
"storage.yandexcloud.net","ru-central1"
)
)
.build();
See this repository