真的可以用它撞墙,所以获得指导很有帮助。基本上我有一个使用sas 9.3的客户端,没有s3连接器或aws cli,但是我需要连接到s3,所以我唯一的方法是使用grroovy和java库,但是我无法使它正常工作。每当我尝试这样做时,我都会得到
我们计算出的请求签名与您提供的签名不匹配。检查您的密钥和签名方法
错误消息。我想知道是否有人对此进行了说明,或者有人可以帮我解决这个问题,因为我无法使其正常工作。非常感谢。
代码:
proc groovy;
add sasjar="commons_codec" ;
submit "&s3secret." "&stringToSign.";
import javax.crypto.Mac
import javax.crypto.spec.SecretKeySpec
import org.apache.commons.codec.binary.Base64
def base64hmacsha256(key, message) {
mac = Mac.getInstance("HmacSHA256")
mac.init(new SecretKeySpec(key.getBytes(), "HmacSHA256"))
sha1_bytes = mac.doFinal(message.getBytes())
base64 = new Base64()
return mac.doFinal(message.getBytes("UTF8"));
}
exports.base64hmacsha256 = base64hmacsha256(args[0], args[1])
endsubmit;
quit;