前提・実現したいこと
S3に保存している、CSVファイルを読み込み中身を1行ずつ読み込んで処理したい。
現在、S3にアクセスする部分と1行ずつ処理する部分は以下のようにソースを組みました。
このとき、ローカルに置いてある場合などはこのような形でできると思いますが、S3の際にはどのようにすればこのようになるかご教示いただきたく思います。
FileReaderに当たる部分が現在詰まっている箇所になります。
Java
1FileReader fileReader = new FileReader("/Users/test/Downloads/test.csv"); 2BufferedReader bufferedReader = new BufferedReader(fileReader); 3 4String line; 5// CSVを1行ずつ読み込んで処理する。 6while ((line = bufferedReader.readLine()) != null) { 7 String[] data = line.split(",", 0); 8 ・・・処理・・・ 9}
該当のソースコード
Java
1// 認証情報 2AWSCredentials credentials = new BasicAWSCredentials("アクセスキー", "シークレットキー"); 3 4// クライアント設定 5ClientConfiguration clientConfig = new ClientConfiguration(); 6clientConfig.setProtocol(Protocol.HTTPS); // プロトコル 7clientConfig.setConnectionTimeout(10000); // 接続タイムアウト(ms) 8 9// エンドポイント設定 10AwsClientBuilder.EndpointConfiguration endpointConfiguration = new AwsClientBuilder.EndpointConfiguration(ENDPOINT_URL, REGION); 11 12// クライアント生成 13AmazonS3 client = AmazonS3ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(credentials)).withClientConfiguration(clientConfig).withEndpointConfiguration(endpointConfiguration).build(); 14 15S3Object s3Object = client.getObject("バケット名", "ファイル名"); 16 17//以下は仮の実装 18BufferedReader bufferedReader = new BufferedReader(fileReader); 19 20String line; 21// CSVを1行ずつ読み込んで処理する。 22while ((line = bufferedReader.readLine()) != null) { 23 String[] data = line.split(",", 0); 24 ・・・処理・・・ 25}
補足情報(FW/ツールのバージョンなど)
Java8
Spring Boot2.0.2
AWS SDK1.11.573
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。