JavaからAWS CLIのcredentialsを参照してS3にアクセスする方法

JavaからAWS CLIのcredentialsを参照してS3にアクセスする方法

Javaファイルに直接credentials情報を書きたくない場合に、C:\Users\ユーザ名.aws\credentialsファイルの情報にアクセスしてJavaから参照する方法です。

credentialsの中身は以下のような感じです。

Javaからアクセスするには以下のように記述します。

これでcredentialsの情報が取得できます。このcredentialsオブジェクトを使用してS3にアクセスしてみます。

S3にアクセスするためにS3オブジェクトを作成します。東京リージョンを指定します。

このs3オブジェクトでバケットを作成したりバケット内を見たりバケットを削除することができます。

バケットを作成する

これでバケットが作成されます。

JavaからAWS CLIのcredentialsを参照してS3にアクセスする方法

バケット一覧を取得する

バケット一覧を取得するにはlistBuckets()メソッドを使用します。

バケットにオブジェクトをアップロードする

バケットにオブジェクトをアップロードするにはputObject()メソッドを使用します。

バケットのオブジェクトを取得する

バケットのオブジェクトを取得するにはgetObject()メソッドを使用します。

バケットのオブジェクト一覧を取得する

バケットのオブジェクト一覧を取得するには、listObjects()メソッドを使用します。

バケット名で指定してもよいですし、プレフィックスを指定しても取得することができます。

OjbectListing#getObjectSummaries()メソッドでList<S3ObjectSummary>を取得することができます。

バケットのオブジェクトを削除する

バケットのオブジェクトを削除するにはdeleteObject()メソッドを使用します。

バケットを削除する

バケットを削除するにはdeleteBucket()メソッドを使用します。この時バケット内にオブジェクトが存在する場合はエラーとなります。これはS3の仕様です。

LinkedHashMapをString型に変換してアップロード

MapをJSON形式に変換してS3アップロードする例です。

jacksonのObjectMapperクラスのwriterWithDefaultPrettyPrinter().writeValueAsString()メソッドを使用します。

package aws.s3put;
import java.util.LinkedHashMap;
import java.util.Map;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
public class S3put {
public static void main(String[] args) throws JsonProcessingException {
AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withRegion("ap-northeast-1").build();
final ObjectMapper objectMapper = new ObjectMapper();
// MapをJSONに変換
Map<String, String> map = new LinkedHashMap<String, String>();
map.put("test1", "val1");
map.put("test2", "val2");
var jsonstring = objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(map);
s3Client.putObject("saba6seimenjo", "var/data/a:test.json", jsonstring);
}
}

view raw
S3put.java
hosted with ❤ by GitHub

  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA