AWS JavaSdkを使用してs3バケットからファイルの内容を読み取って印刷しようとしています。ファイルにアクセス(およびダウンロード)できる事前に署名されたURLがあります。しかし、presigned-URLを使用してファイルを読み取ることができません。
以下のコードスニペットに似た何かをしたいと思っています-
public void readFromS3(String bucketName, String key) throws IOException {
S3Object s3object = s3.getObject(new GetObjectRequest(bucketName, key));
System.out.println(s3object.getObjectMetadata().getContentType());
System.out.println(s3object.getObjectMetadata().getContentLength());
BufferedReader reader = new BufferedReader(new InputStreamReader(s3object.getObjectContent()));
String line;
while((line = reader.readLine()) != null) {
// can copy the content locally as well
// using a buffered writer
System.out.println(line);
}
}
アクセスできるURLで、ファイルをダウンロードできます。
私はまた、成功しなかった次の参考文献を見ました-
http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/AmazonS3Client.html
誰か助けてもらえますか?
前もって感謝します!
事前に署名されたURLがある場合、S3オブジェクトにアクセスするためにAWSSDKを使用する必要はありません。
@EricNordがコメントしたように、URL自体がS3での認証を提供してアクセスを許可します。URLのクエリパラメータにSTSトークンが追加され、認証が可能になります。
基本的なHTTPクライアントは、URLの内容を読み取ることができます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加