getObject API を使用して aws s3 からファイルをダウンロードしています。単純なテキスト ファイルは正常に機能しますが、pdf をダウンロードするとファイルが破損します。FileOutputStream を使用してコンテンツをファイルに保存していますが、保存した pdf が破損しています。
この目的で使用する正しいJava APIと、読み取られたバイトが書き込まれるバイト配列のサイズについてはよくわかりません。
また、SDK を直接使用することが理にかなっているのか、または Java で利用できるオープン ソースのラッパー API が利用できるのかについても興味があります。
FileOutputStream fout = new FileOutputStream(new File(destFileName));
byte[] b = new byte[8192];
int bytesRead;
while (true) {
bytesRead = input.read(b);
System.out.println("bytesRead = "+bytesRead );
if (bytesRead==-1)
break;
fout.write(b);
}
fout.flush();
fout.close();