因此,我一直在遵循Amazon教程来获取原始访问身份,以使用s3存储桶和CloudFront为私人内容提供服务。这是我所做的:
-创建了一个云端密钥对。
创建的原始访问身份
-创建了一个云战线,为其提供了访问权限,并相应地更改了s3规则。
但是Java代码似乎不起作用。使用创建的URL时出现以下错误:
查询字符串身份验证需要Signature,Expires和AWSAccessKeyId参数
这是我的代码:
String policyResourcePath = "http://" + CloudFrontUrl + "/" + filename;
AmazonS3URI URI= new AmazonS3URI(policyResourcePath);
String urIString = URI.toString();
DateTime dt = new DateTime();
Date added =dt.plusMinutes(5).toDate();
ClassPathResource res = new ClassPathResource(privateKeyFilePath);
Path path = Paths.get(res.getURI());
byte[] privKeyByteArray = Files.readAllBytes(path);
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(privKeyByteArray);
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
PrivateKey myPrivKey = keyFactory.generatePrivate(keySpec);
String policy = CloudFrontUrlSigner.buildCustomPolicyForSignedUrl(urIString , added, IPAddress,null);
String singedUrl = CloudFrontUrlSigner.getSignedURLWithCustomPolicy(urIString , *My Cloud front key pair access key id*, myPrivKey, policy);
System.out.println(singedUrl);
我想念什么?