This folder contains a Java application example that handles S3 buckets on AWS (Amazon Web Services).
Move an object from a S3 bucket to another S3 bucket.
-
You must have an Amazon Web Services (AWS) account.
-
The code was written for:
- Java 8
- Apache Maven 3
- AWS SDK for Java (SDK V1)
-
Configure your AWS access keys.
Important: For security, it is strongly recommend that you use IAM users instead of the root account for AWS access.
When you initialize a new service client without supplying any arguments, the AWS SDK for Java attempts to find AWS credentials by using the default credential provider chain.
Setting your credentials for use by the AWS SDK for Java can be done in a number of ways, but here are the recommended approaches:
-
The default credential profiles file.
Set credentials in the AWS credentials profile file on your local system, located at:
-
~/.aws/credentials
on Linux, macOS, or Unix. -
C:\Users\USERNAME\.aws\credentials
on Windows.
This file should contain lines in the following format:
[default] aws_access_key_id = <YOUR_ACCESS_KEY_ID> aws_secret_access_key = <YOUR_SECRET_ACCESS_KEY>
Replace the values of
<YOUR_ACCESS_KEY_ID>
and<YOUR_SECRET_ACCESS_KEY>
by your AWS credentials. -
-
Environment variables
AWS_ACCESS_KEY_ID
andAWS_SECRET_ACCESS_KEY
.Set the
AWS_ACCESS_KEY_ID
andAWS_SECRET_ACCESS_KEY
environment variables.To set these variables on Linux, macOS, or Unix, use
export
:export AWS_ACCESS_KEY_ID=<YOUR_ACCESS_KEY_ID> export AWS_SECRET_ACCESS_KEY=<YOUR_SECRET_ACCESS_KEY>
To set these variables on Windows, use
set
:set AWS_ACCESS_KEY_ID=<YOUR_ACCESS_KEY_ID> set AWS_SECRET_ACCESS_KEY=<YOUR_SECRET_ACCESS_KEY>
Replace the values of
<YOUR_ACCESS_KEY_ID>
and<YOUR_SECRET_ACCESS_KEY>
by your AWS credentials.
-
-
You can select the AWS region changing the value of
REGION
variable in the code. -
Create a S3 bucket for the source and another S3 bucket for the target.
-
Copy a file to the source S3 bucket.
-
Run the code.
You must provide 3 parameters, replace the values of:
<SOURCE_BUCKET>
by source bucket name.<SOURCE_OBJECT>
by source object name.<DESTINATION_BUCKET>
by destination bucket name.
Run application:
java -jar awss3move.jar <SOURCE_BUCKET> <SOURCE_OBJECT> <DESTINATION_BUCKET>
-
Test the application.
The object from the source S3 bucket should be copied to the target S3 bucket and deleted in the source S3 bucket.