質問で問題を説明しているため、Amazon S3で利用可能なファイルを読み取ろうとしています。非推奨のコンストラクターの代替呼び出しを見つけることができませんでした。
コードは次のとおりです。
private String AccessKeyID = "xxxxxxxxxxxxxxxxxxxx";
private String SecretAccessKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
private static String bucketName = "documentcontainer";
private static String keyName = "test";
//private static String uploadFileName = "/PATH TO FILE WHICH WANT TO UPLOAD/abc.txt";
AWSCredentials credentials = new BasicAWSCredentials(AccessKeyID, SecretAccessKey);
void downloadfile() throws IOException
{
// Problem lies here - AmazonS3Client is deprecated
AmazonS3 s3client = new AmazonS3Client(credentials);
try {
System.out.println("Downloading an object...");
S3Object s3object = s3client.getObject(new GetObjectRequest(
bucketName, keyName));
System.out.println("Content-Type: " +
s3object.getObjectMetadata().getContentType());
InputStream input = s3object.getObjectContent();
BufferedReader reader = new BufferedReader(new InputStreamReader(input));
while (true) {
String line = reader.readLine();
if (line == null) break;
System.out.println(" " + line);
}
System.out.println();
} catch (AmazonServiceException ase) {
//do something
} catch (AmazonClientException ace) {
// do something
}
}
助けがありますか?さらに説明が必要な場合は、それを明記してください。 SDKの.Zipファイルで提供されているサンプルコードを確認しましたが、同じです。
代替として AmazonS3ClientBuilder または AwsClientBuilder を使用できます。
S3の場合、最も簡単なのはAmazonS3ClientBuilderで、
BasicAWSCredentials creds = new BasicAWSCredentials("access_key", "secret_key");
AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(creds)).build();
以下のコードを使用して、資格情報なしでS3クライアントを作成します。
AmazonS3 s3Client = AmazonS3ClientBuilder.standard().build();
使用例は、S3を呼び出すラムダ関数です。
次のようにS3デフォルトクライアントを作成できます(aws-Java-sdk-s3-1.11.232を使用)。
AmazonS3ClientBuilder.defaultClient();