Amazon AWSのアクセスキーとシークレットキーを設定する方法(Java編)

java

Amazon AWS SDKを使ううえでまず最初にやらないといけないことは、アクセスキーとシークレットキーの設定です。

Amazon AWS SDKのアクセスキーとシークレットキーの設定方法は、2通りあります。
1つは直接指定するパターンで、もう1つはプロパティファイルで指定するパターンです。
今回は、こちらの2パターンを紹介します。

[スポンサーリンク]

この章でやること

Amazon AWS SDKのアクセスキーとシークレットキーを設定する方法を紹介します。

aws-java-sdkの設定

Mavenを使っている方はこちらをpom.xmlに追加してください。

<dependency>
	<groupId>com.amazonaws</groupId>
	<artifactId>aws-java-sdk</artifactId>
	<version>1.4.6</version>
</dependency>

アクセスキーとシークレットキーを直接指定する方法

Amazon S3 へファイルをアップロードする方法で紹介したサンプルソースをベースに、アクセスキーとシークレットキーを直接指定する方法を紹介します。

public class S3Sample {

    private static final String accessKey = "AccessKey";
    private static final String secretKey = "SecretKey";

    public static void main(String[] args) throws IOException {
        String bucketName = "bucket-name";
        String filePath = "/test/";
        String fileName = "upload.jpeg";
         
        // ここで、accessKeyとsecretKeyを設定しています。
        // Keyは、文字列として渡しています。
        AWSCredentials credentials = new BasicAWSCredentials(accessKey,secretKey);
        AmazonS3 s3 = new AmazonS3Client(credentials);
 
        File file = new File("./test.jpeg");
        s3.putObject(new PutObjectRequest(bucketName, filePath+fileName, file));
    }
}

解説

BasicAWSCredentialsにアクセスキーとシークレットキーを文字列として渡しています。

アクセスキーとシークレットキーをpropertiesファイルで指定する方法

こちらもAmazon S3 へファイルをアップロードする方法で紹介したサンプルソースをベースに、アクセスキーとシークレットキーをプロパティファイルで指定する方法を紹介します。

public class S3Sample {
 
    public static void main(String[] args) throws IOException {
        String bucketName = "bucket-name";
        String filePath = "/test/";
        String fileName = "upload.jpeg";
         
        // ここで、accessKeyとsecretKeyを設定しています。
        // Keyは、AwsCredentials.propertiesに設定しています
        AmazonS3 s3 = new AmazonS3Client(
        					new ClasspathPropertiesFileCredentialsProvider());
 
        File file = new File("./test.jpeg");
        s3.putObject(new PutObjectRequest(bucketName, filePath+fileName, file));
    }
}

AwsCredentials.properties

accessKeysecretKey を設定します。

# Fill in your AWS Access Key ID and Secret Access Key
# http://aws.amazon.com/security-credentials
accessKey =XXXX
secretKey =XXX

解説

11行目で、ClasspathPropertiesFileCredentialsProviderをインスタンス化しています。
この時、ClasspathPropertiesFileCredentialsProviderは、AwsCredentials.propertiesのアクセスキーとシークレットキーを自動で読み込み&設定しています。

最後に

アクセスキーとシークレットキーを設定する方法は、直接入力とプロパティ指定の2パターンを紹介しました。
どちらの方法も簡単だったと思います。
わたしは、プロパティ指定のパターンをおススメします。キーの管理が楽になるので。

補足ですが、上記のサンプルプログラムは、S3へファイルアップロードするプログラムです。
http://S3ドメイン/bucket-name/test/upload.jpegにアクセスするとイメージファイルが参照出来る作りとなっています。
詳細はこちらを参照して下さい。
Amazon S3 へファイルをアップロードする方法
それでは!