private static byte[] getRegionSigningKey(String secret, String date, String region, String signMethod) {
        byte[] dateSignkey = getDateSigningKey(secret, date, signMethod);
        try {
            Mac mac = Mac.getInstance(signMethod);
            mac.init(new SecretKeySpec(dateSignkey, signMethod));
            return mac.doFinal(region.getBytes(StandardCharsets.UTF_8));
        } catch (NoSuchAlgorithmException e) {
            throw new RuntimeException("unsupport Algorithm:" + signMethod);
        } catch (InvalidKeyException e) {
            throw new RuntimeException("InvalidKey");
        }
    }
@Test
    public void testGetRegionSigningKey() throws InvocationTargetException, IllegalAccessException, NoSuchMethodException {
        String secret = "mySecret";
        String date = "20220101";
        String region = "cn-beijing";
        String signMethod = "HmacSHA256";
        byte[] expectArray = new byte[]{-40, 5, 2, 41, -48, 82, 10, -102, 125, -24, -44, -83, 127, 6, -85, 93, -26, 88, -88, 65, 56, 79, -5, -66, 65, -106, 19, -64, -85, 103, -32, 110};

        RamSignAdapter adapter = new RamSignAdapter();
        // Use reflection to access the private method
        Method getRegionSigningKeyMethod = RamSignAdapter.class.getDeclaredMethod("getRegionSigningKey", String.class, String.class, String.class, String.class);
        getRegionSigningKeyMethod.setAccessible(true);
        byte[] signingKey = (byte[]) getRegionSigningKeyMethod.invoke(adapter, secret, date, region, signMethod);
        Assertions.assertEquals(32, signingKey.length);
        Assertions.assertArrayEquals(expectArray, signingKey);
    }