我正在尝试使用AWS Java Sdk从s3存储桶读取和打印文件的内容。我有一个预先签名的URL,可让我访问(和下载)文件。但是,我无法使用预签名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,则无需使用AWS sdk来访问S3对象。
正如@EricNord所说,URL本身提供了S3身份验证以允许访问。该URL将在查询参数中附加一个STS令牌,从而启用身份验证。
基本的HTTP客户端将能够读取URL的内容。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句