如何使用java中的URL从amazon S3下载对象

时间:2014-09-10 11:38:23

标签: java amazon-web-services amazon-s3

以下是我的代码

AmazonS3 s3  = new AmazonS3Client(credentials,config); // assume proper authentication

// generating URL for some bucket(XYZ) and key(test/abc.txt) 

java.util.Date expiration = new java.util.Date();
        expiration.setTime(6000*10*20);
        GeneratePresignedUrlRequest generateUrl = new GeneratePresignedUrlRequest("XYZ", "test/abc.txt");
        generateUrl.setMethod(HttpMethod.GET); // Default.
        generateUrl.setExpiration(expiration);
URL url = s3.generatePresignedUrl(generateUrl);

以上代码的o / p为
https://s3.amazonaws.com/XYX/test/abc.txt?AWSAccessKeyId=XXXXXXXXXXXXXXXXX&Expires=1200&Signature=YYYYYYYYYYYYYYYYY

使用上面的URL我试图下载abc.txt但是我收到错误403(服务器返回HTTP响应代码:403为URL:)

请告诉我如何使用amazon s3的网址下载文件。

1 个答案:

答案 0 :(得分:1)

使用HttpURLConnection您应该能够从java访问所请求的网页。请尝试以下代码:

 HttpURLConnection httpcon = (HttpURLConnection) url.openConnection(); 
 httpcon.addRequestProperty("User-Agent", "YOUR_BROWSER_AGENT");