Search in sources :

Example 1 with QcloudApiModuleCenter

use of com.qcloud.QcloudApiModuleCenter in project roof-im by madfroglx.

the class OCSTest method testKey.

@Test
public void testKey() {
    /* 如果是循环调用下面举例的接口,需要从此处开始你的循环语句。切记! */
    TreeMap<String, Object> config = new TreeMap<String, Object>();
    config.put("SecretId", "AKIDSpCPQFhNfmmcJ0Q0FKE7pNjuuiKlN73o");
    config.put("SecretKey", "kKjOsEPOCoFUlwviLm27IJ9nFWcaNyOc");
    /* 请求方法类型 POST、GET */
    config.put("RequestMethod", "GET");
    /* 区域参数,可选: gz: 广州; sh: 上海; hk: 香港; ca: 北美; 等。 */
    config.put("DefaultRegion", "sh");
    QcloudApiModuleCenter module = new QcloudApiModuleCenter(new Sts(), config);
    TreeMap<String, Object> params = new TreeMap<String, Object>();
    /* 将需要输入的参数都放入 params 里面,必选参数是必填的。 */
    /* DescribeInstances 接口的部分可选参数如下 */
    params.put("name", "test");
    // String policy = "{\"statement\": [{\"action\": [\"name/cos:GetObject\",\"name/cos:PutObject\"],\"effect\": \"allow\",\"resource\":[\"qcs::cos:ap-beijing:uid/1255710173:prefix//1255710173/im/*\"]}],\"version\": \"2.0\"}";
    String policy = "{\"statement\": [{\"action\": [\"name/cos:GetObject\",\"name/cos:PutObject\"],\"effect\": \"allow\",\"resource\":[\"qcs::cos:ap-shanghai:uid/1255710173:prefix//1255710173/im/*\"]}],\"version\": \"2.0\"}";
    params.put("policy", policy);
    /* 在这里指定所要用的签名算法,不指定默认为 HmacSHA1*/
    // params.put("SignatureMethod", "HmacSHA256");
    /* generateUrl 方法生成请求串, 可用于调试使用 */
    System.out.println(module.generateUrl("GetFederationToken", params));
    String result = null;
    try {
        /* call 方法正式向指定的接口名发送请求,并把请求参数 params 传入,返回即是接口的请求结果。 */
        result = module.call("GetFederationToken", params);
        System.out.println(result);
    } catch (Exception e) {
        System.out.println("error..." + e.getMessage());
    }
}
Also used : Sts(com.qcloud.Module.Sts) QcloudApiModuleCenter(com.qcloud.QcloudApiModuleCenter) TreeMap(java.util.TreeMap) UnsupportedEncodingException(java.io.UnsupportedEncodingException) Test(org.junit.Test)

Example 2 with QcloudApiModuleCenter

use of com.qcloud.QcloudApiModuleCenter in project roof-im by madfroglx.

the class GetTmpSecretHandlerNode method doNode.

public NodeResult doNode(GetTmpSecretRequest request, ValueStack valueStack) {
    TreeMap<String, Object> config = new TreeMap<>();
    config.put("SecretId", secretId);
    config.put("SecretKey", secretKey);
    /* 请求方法类型 POST、GET */
    config.put("RequestMethod", "GET");
    /* 区域参数,可选: gz: 广州; sh: 上海; hk: 香港; ca: 北美; 等。 */
    config.put("DefaultRegion", "sh");
    QcloudApiModuleCenter module = new QcloudApiModuleCenter(new Sts(), config);
    TreeMap<String, Object> params = new TreeMap<>();
    /* 将需要输入的参数都放入 params 里面,必选参数是必填的。 */
    /* DescribeInstances 接口的部分可选参数如下 */
    params.put("name", request.getUsername());
    String policy = "{\"statement\": [{\"action\": [\"name/cos:GetObject\",\"name/cos:PutObject\"]," + "\"effect\": \"allow\"," + "\"resource\":[\"qcs::cos:" + region + ":uid/" + appId + ":prefix//" + appId + "/im/*\"]}]" + ",\"version\": \"2.0\"}";
    params.put("policy", policy);
    params.put("durationSeconds", durationSeconds);
    /* 在这里指定所要用的签名算法,不指定默认为 HmacSHA1*/
    // params.put("SignatureMethod", "HmacSHA256");
    /* generateUrl 方法生成请求串, 可用于调试使用 */
    String result = null;
    try {
        NodeResult nodeResult = new NodeResult(GET_TMP_SECRET_SUCCESS);
        /* call 方法正式向指定的接口名发送请求,并把请求参数 params 传入,返回即是接口的请求结果。 */
        result = module.call(GET_FEDERATION_TOKEN, params);
        JSONObject jsonObject = JSONObject.parseObject(result);
        if (jsonObject.getInteger("code") != 0) {
            LOGGER.error(result);
            return new NodeResult(GET_TMP_SECRET_ERROR);
        }
        JSONObject data = jsonObject.getJSONObject("data");
        data.put("region", region);
        data.put("bucket", bucket + "-" + appId);
        data.put("path", pathPrefix + "/" + DateFormatUtils.format(new Date(), "yyyyMM") + "/");
        nodeResult.setData(data);
        return nodeResult;
    } catch (Exception e) {
        LOGGER.error(e.getMessage(), e);
        return new NodeResult(GET_TMP_SECRET_ERROR);
    }
}
Also used : Sts(com.qcloud.Module.Sts) JSONObject(com.alibaba.fastjson.JSONObject) QcloudApiModuleCenter(com.qcloud.QcloudApiModuleCenter) NodeResult(com.roof.chain.support.NodeResult) JSONObject(com.alibaba.fastjson.JSONObject) TreeMap(java.util.TreeMap) Date(java.util.Date)

Aggregations

Sts (com.qcloud.Module.Sts)2 QcloudApiModuleCenter (com.qcloud.QcloudApiModuleCenter)2 TreeMap (java.util.TreeMap)2 JSONObject (com.alibaba.fastjson.JSONObject)1 NodeResult (com.roof.chain.support.NodeResult)1 UnsupportedEncodingException (java.io.UnsupportedEncodingException)1 Date (java.util.Date)1 Test (org.junit.Test)1