首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用java代码计算aws s3的授权码?

无法使用java代码计算aws s3的授权码?
EN

Stack Overflow用户
提问于 2019-02-25 16:52:45
回答 1查看 72关注 0票数 0

我正在尝试使用java代码计算aws授权码,但由于出现错误,这是不起作用的:

代码语言:javascript
复制
String host = "bucketname" + ".s3-us-east-2.amazonaws.com";
        Calendar cal = Calendar.getInstance();
        cal.add(Calendar.HOUR_OF_DAY, 24);
        long expireTime = cal.getTimeInMillis() / 1000;

        String signString = "GET\n" +
            "\n" +
            "\n" +
            expireTime + "\n" +
            "/" + "testingsagar" + "location";

        SecretKeySpec signingKey = new SecretKeySpec(SECRET_KEY.getBytes(), HMAC_SHA1_ALGORITHM);
        Mac mac = Mac.getInstance(HMAC_SHA1_ALGORITHM);
        mac.init(signingKey);
        String signature = URLEncoder.encode(new String(Base64.getEncoder().encode(mac.doFinal(signString.getBytes()))));

        System.out.println(signature);
        String fullPayload = "?AWSAccessKeyId=" + ACCESS_KEY +
            "&Expires=" + expireTime + 
            "&Signature=" + signature;

        System.out.println("http" + "://" + host + "" + fullPayload);

谁能建议我java代码,我可以用来计算授权码。提前感谢

EN

回答 1

Stack Overflow用户

发布于 2019-02-25 17:00:54

要签名的字符串实际上缺少几个元素,例如区域(参见https://docs.aws.amazon.com/general/latest/gr/sigv4_elements.html)

请参阅此处的Java代码示例https://docs.aws.amazon.com/general/latest/gr/signature-v4-examples.html#signature-v4-examples-java

AWS SDK for Java有一个签名者组件,可以为您实现这一点-无需编写您自己的代码https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/AWS4Signer.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54862491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档