在我的项目中,每当调用一个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。