如何使用RESTAPI Java使Google CDN缓存失效?
我一直在研究这方面的工作示例,但没有找到任何 我参考了以下链接 及 从这些文档中,我明白了我需要实现这一点如何使用RESTAPI Java使Google CDN缓存失效?,java,google-cloud-platform,google-compute-api,Java,Google Cloud Platform,Google Compute Api,我一直在研究这方面的工作示例,但没有找到任何 我参考了以下链接 及 从这些文档中,我明白了我需要实现这一点 import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.http.HttpTransport; impor
import com.google.api.client.googleapis.auth.oauth2.GoogleCredential;
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.jackson2.JacksonFactory;
import com.google.api.services.compute.Compute;
import com.google.api.services.compute.model.CacheInvalidationRule;
import com.google.api.services.compute.model.Operation;
import java.io.IOException;
import java.security.GeneralSecurityException;
import java.util.Arrays;
public class ComputeExample {
public static void main(String args[]) throws IOException, GeneralSecurityException {
// Project ID for this request.
String project = "my-project"; // TODO: Update placeholder value.
// Name of the UrlMap scoping this request.
String urlMap = "my-url-map"; // TODO: Update placeholder value.
// TODO: Assign values to desired fields of `requestBody`:
CacheInvalidationRule requestBody = new CacheInvalidationRule();
Compute computeService = createComputeService();
Compute.UrlMaps.InvalidateCache request =
computeService.urlMaps().invalidateCache(project, urlMap, requestBody);
Operation response = request.execute();
// TODO: Change code below to process the `response` object:
System.out.println(response);
}
public static Compute createComputeService() throws IOException, GeneralSecurityException {
HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
GoogleCredential credential = GoogleCredential.getApplicationDefault();
if (credential.createScopedRequired()) {
credential =
credential.createScoped(Arrays.asList("https://www.googleapis.com/auth/cloud-platform"));
}
return new Compute.Builder(httpTransport, jsonFactory, credential)
.setApplicationName("Google-ComputeSample/0.1")
.build();
}
}
但是,如果您看到这个示例,它的位置上只有占位符值
如果我想刷新名为
在上述代码中,我将在何处输入此信息?
我加在这里了吗
credential.createScoped(Arrays.asList("https://mywebsite.com/homepage.html"));
或者我应该将其添加到UrlMaps中?这非常令人困惑。它应该放在请求正文中。请求机构: 这些字段包含以下内容:
- 路径作为字符串
- 主机作为字符串
CacheInvalidationRule requestBody = new CacheInvalidationRule();
这将创建CacheInvalizationRule对象并分配给requestBody
此外,您可能还需要这样做
requestBody.setHostand requestBody.setPath = ""
这两个属性将字符串作为参数
requestBody.setHost=" mywebsite.com"
及
希望它有帮助,祝你好运我建议检查Compute.UrlMaps.InvalidateCache,description我相信它将有助于你理解这个类以及如何将它合并到你的代码中。例如,它包含方法详细信息和参数描述 构造详细信息 废品车
protected InvalidateCache(java.lang.String project,
java.lang.String urlMap,
CacheInvalidationRule content)
启动缓存无效操作,使指定路径无效,作用域为指定的UrlMap。为方法“urlMaps.invalidateCache”创建请求。此请求保存计算服务器所需的参数。设置任何可选参数后,调用AbstractGoogleClientRequest.execute()方法调用远程操作
InvalidateCache#初始化(com.google.api.client.googleapis.services.AbstractGoogleC lientRequest)
必须在调用构造函数后立即调用以初始化此实例
参数:
- project-此请求的项目ID李>
- urlMap—作用于此请求的urlMap的名称李>
- 内容—
cacheinvalizationrule
谢谢你这样一个描述性的回答。我照你说的做了,现在我得到了PKIXSSL异常。这是否意味着缓存失效请求正在工作,但现在这是另一个问题。如果是这样的话,我会接受你的回答,并为下一个问题提出另一个问题。但是你能确认这是真的吗?要确认r缓存失效是否有效,你能分享你得到的确切错误吗?这可能是因为您试图访问使用SSL加密的应用程序,例如HTTPS,这将引发异常,连接将被拒绝。您可以检查几件事:根据连接到SSL服务说明,确认已将目标实例的公共证书导入信任库。同时确认已将任何证书导入正确的信任库;您可能有多个JRE/JDK。您还可以验证目标服务器是否配置为正确提供SSL服务。这可以通过SSL服务器测试工具完成。如果所有其他操作都失败,您的信任库可能已过时。将Java升级到应用程序支持的最新版本。我按照您所说的做了,我可以使用requestBody设置刷新缓存的路径。关于SSL问题,我不确定发生了什么,但几天后它就起作用了。可能是来自DevOps团队的人员安装了SSL证书。谢谢
requestBody.setPath = "/homepage.html"
protected InvalidateCache(java.lang.String project,
java.lang.String urlMap,
CacheInvalidationRule content)
public Compute.UrlMaps.InvalidateCache set(java.lang.String parameterName,
java.lang.Object value)