我想使用预签名的URL下载存储在S3存储桶中的文件。
目标-生成并单击预签名的URL时,应下载所需的文件。
应用代码-
public String generatePreSignedUrl(String dfileName) {
Date expiration = new Date();
long expTimeMillis = expiration.getTime();
expTimeMillis += 1000 * 60 * 60;
expiration.setTime(expTimeMillis);
LOG.info("Generating Pre Signed URL For {}", dfileName);
GeneratePresignedUrlRequest generatePresignedUrlRequest = new GeneratePresignedUrlRequest(bucketName,
dfileName);
generatePresignedUrlRequest.setMethod(HttpMethod.GET);
generatePresignedUrlRequest.setExpiration(expiration);
generatePresignedUrlRequest.setSSEAlgorithm(SSEAlgorithm.KMS.getAlgorithm());
generatePresignedUrlRequest.setKmsCmkId(keyId);
return conn.generatePresignedUrl(generatePresignedUrlRequest).toString();
}
已通过变量-
dfileName - File to download from S3 bucket.
bucketName - S3 Bucket Name.
keyId - KMS Key ID (Ex: arn:aws:kms:<region>:<account>:key/<key id>
浏览器上显示错误-
<Error>
<Code>SignatureDoesNotMatch</Code>
<Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.</Message>
.......