Как сделать недействительной кэш Google CDN с помощью REST API Java? - PullRequest
0 голосов
/ 23 апреля 2020

Я искал рабочий пример для этого, но не нашел ни одного.

Я ссылался на следующие ссылки Ссылка на Stackoverflow и Официальные документы Google

Из этих документов я понял, что мне нужно реализовать это

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();
  }
}

НО, если вы видите этот пример, на его месте только значения-заполнители.

IF Я ХОЧУ ПОЛУЧИТЬ SH КЭШ СТРАНИЦЫ, ВЫЗЫВАЕМЫЙ https://mywebsite.com/homepage.html ГДЕ Я ВХОДИЛ ЭТУ ИНФОРМАЦИЮ В ВЫШЕ КОДЕКС?

Добавил ли я ее сюда

 credential.createScoped(Arrays.asList("https://mywebsite.com/homepage.html"));

ИЛИ Должен ли я добавить его в UrlMaps? Это очень запутанно.

Ответы [ 2 ]

2 голосов
/ 24 апреля 2020

Это должно go в теле запроса. Тело запроса содержит данные со следующей структурой :

JSON representation
{
  "path": string,
  "host": string
}

Эти поля принимают следующие значения:

  • путь в виде строки
  • хост в качестве строка

Если установлено, это правило аннулирования будет применяться только к запросам с хостом, соответствующим заголовку хоста.

Возможно, вам потребуется создать объект requestbody

CacheInvalidationRule requestBody = new CacheInvalidationRule();

это должно создать объект cacheinvalidationrule и назначить requestBody

Кроме того, вам также может понадобиться что-то вроде этого

requestBody.setHostand requestBody.setPath = ""

Эти два свойства принимают строку в качестве аргумента

requestBody.setHost=" mywebsite.com"

и

requestBody.setPath = "/homepage.html"

Надеюсь, это поможет, удачи

0 голосов
/ 24 апреля 2020

Я бы предложил проверить developers.google.com Compute.UrlMaps.InvalidateCache класс , использовать Краткое описание метода описание, которое я считаю вам было бы полезно понять этот класс и как включить его в свой код. Он содержит сведения о методе и описание параметров, например

Сведения о конструкторе InvalidateCache

protected InvalidateCache(java.lang.String project,
                          java.lang.String urlMap,
                          CacheInvalidationRule content)

Инициирует операцию аннулирования кэша, делающую недействительным указанный путь, ограниченный указанной UrlMap. Создайте запрос для метода "urlMaps.invalidateCache". Этот запрос содержит параметры, необходимые для вычислительного сервера. После установки любых необязательных параметров вызовите метод AbstractGoogleClientRequest.execute () для вызова удаленной операции.

InvalidateCache#initialize(com.google.api.client.googleapis.services.AbstractGoogleC lientRequest)

необходимо вызвать для инициализации этого экземпляра сразу после вызова конструктора.

Параметры:

  • project - идентификатор проекта для этого запроса.
  • urlMap - Имя UrlMap, определяющего этот запрос.
  • content - CacheInvalidationRule

Сведения о методе, например, для setAlt set

public Compute.UrlMaps.InvalidateCache set(java.lang.String parameterName,
                                           java.lang.Object value)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...