Amazon CloudFront Origin Access被拒绝,身份验证需要Signature,Expires和AWSAccessKeyId参数

时间:2019-02-22 16:29:25

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

因此,我一直在遵循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);

我想念什么?

0 个答案:

没有答案