在我的项目中,每当调用一个API时,它就会被缓存在Akamai中。但是,当客户端通过UI更改数据库中的某些内容时。我们需要使AKAMAI中的缓存API响应无效,并用新的新鲜json数据填充它。我在互联网上找到了一些链接:akamai-purging,但是我无法理解他们所说的此链接中的cp代码?

这是给出的示例代码:405不允许

码:

public static void main(String[] args) throws IOException, RequestSigningException {

    URL url = new URL("https://xxx-host-name-/scripts.4535eaf743502b25ba3a.js");

    HttpTransport HTTP_TRANSPORT = new ApacheHttpTransport();
    HttpRequestFactory requestFactory = HTTP_TRANSPORT.createRequestFactory();
    AkamaiPostData postData = new AkamaiPostData();
    postData.setHostname(AkamaiConstants.SITE_HOST_NAME);

    Gson gson = new Gson();
    String postDataJSON = gson.toJson(postData);
    byte[] contentBytes = postDataJSON.getBytes();
    HttpContent content = new ByteArrayContent("application/json", contentBytes);
    HttpRequest request = requestFactory.buildDeleteRequest(new GenericUrl(url));
    HttpHeaders headers = request.getHeaders();
    headers.set("Host", "xxx-host-name-");

    ClientCredential credential = new DefaultCredential(AkamaiConstants.CLIENT_TOKEN, AkamaiConstants.ACCESS_TOKEN, AkamaiConstants.CLIENT_SECRET);
    RequestSigner signer = new EdgeGridV1Signer(Collections.EMPTY_LIST, 1024 * 2);
    HttpRequest signedRequest = signer.sign(request, credential);
    HttpResponse response = signedRequest.execute();
    String result = response.parseAsString();
    System.out.println("result::" + result);
}

最佳答案

在Akamai中清除内容需要API凭证。您可以在Akamai Fast Purge API网站上了解有关Akamai Developer的更多信息。您需要与Akamai客户团队联系,或者在Luna Control Center中配置所需的API访问权限。 API的文档将为您提供了解API以及如何配置适当凭据的链接。

作为一小部分后续措施,CP代码是Akamai的唯一标识符,可将特定域或服务与您的合同联系起来以进行计费。除了访问API所需的凭据外,您肯定还需要了解Akamai支持的域正在使用的CP代码来成功调用Fast Purge API。

08-05 09:37