Rozszerzenie Google Cloud Storage

Wyświetlasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
info

Wersja: 2.0.0

wyświetlać listę plików w zasobniku Cloud Storage, pobierać je i generować dla nich podpisane adresy URL;

Te treści zawierają informacje na temat konfigurowania i używania tego rozszerzenia. Zanim użyjesz tego rozszerzenia z serwera proxy API, musisz:

  1. Utwórz zasobnik Cloud Storage.

  2. Przesłać obiekty do zasobnika.

  3. Przyznaj uprawnienia do zasobnika kontu usługi GCP, które reprezentuje Twoje rozszerzenie Google Cloud Storage. Więcej informacji o roli, której należy użyć, znajdziesz w artykule Role w Cloud Storage. Więcej informacji o uprawnieniach w Cloud Storage znajdziesz w artykule Korzystanie z uprawnień w usłudze Identity and Access Management (IAM).

  4. Wygeneruj klucz konta usługi w konsoli GCP.

  5. Użyj zawartości utworzonego pliku klucza JSON podczas dodawania i konfigurowania rozszerzenia za pomocą dokumentacji konfiguracji.

Informacje o Cloud Storage

Cloud Storage to usługa zapewniająca bezpieczne, trwałe i skalowalne przechowywanie plików. Jeśli dopiero zaczynasz korzystać z Cloud Storage, samouczek w dokumentacji Cloud Storage będzie dobrym punktem wyjścia.

Przykłady

Poniższe przykłady pokazują, jak skonfigurować obsługę działań rozszerzenia Cloud Storage za pomocą zasad dotyczących powiadomień o rozszerzeniu.

Wyświetlanie listy plików

W tym przykładzie działanie listFiles rozszerzenia pobiera listę plików i zwraca je w tablicy. Działanie listFiles nie wymaga żadnych parametrów wejściowych.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="false" enabled="true" name="Get-Storage-File-List">
    <DisplayName>Get Storage File List</DisplayName>
    <Connector>cloud-storage-extension-example</Connector>
    <Action>listFiles</Action>
    <Input><![CDATA[{}]]></Input>
    <Output parsed="false">storage.filelist.retrieved</Output>
</ConnectorCallout>

Wartość odpowiedzi wygląda mniej więcej tak:

["example-text.txt","example-image.png"]

Podana poniżej zasada przypisywania wiadomości pobiera wartość odpowiedzi z zasady ExtensionCallout i kopiuje ją do odpowiedzi.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Storage-File-List">
    <DisplayName>Assign Storage File List</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{storage.filelist.retrieved}</Payload>
    </Set>
</AssignMessage>

Pobieranie pliku

Zasady ExtensionCallout używają rozszerzenia Google Cloud Storage do pobrania prostego pliku tekstowego, którego zawartość to po prostu Some example text.,

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="false" enabled="true" name="Download-File">
    <DisplayName>Download File</DisplayName>
    <Connector>cloud-storage-extension-example</Connector>
    <Action>downloadFile</Action>
    <Input><![CDATA[{"fileName": "example-text.txt"}]]></Input>
    <Output>storage.file.retrieved</Output>
</ConnectorCallout>

Wartość odpowiedzi wygląda tak:

{"content":"Some example text."}

Zasady przypisywania wiadomości odzyskują wartość zwracaną przez rozszerzenie i kopiują ją do ładunku odpowiedzi.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Storage-File-List">
    <DisplayName>Assign Storage File List</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{storage.file.retrieved}</Payload>
    </Set>
</AssignMessage>

Generowanie podpisanego adresu URL

Podana zasada ExtensionCallout używa tego rozszerzenia do generowania adresu URL do pobrania określonego pliku z zasośnika Cloud Storage. Przekazuje nazwę pliku oraz datę, po której adres URL powinien wygasnąć i przestać działać.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ConnectorCallout async="false" continueOnError="false" enabled="true" name="Get-Signed-URL">
    <DisplayName>Get Signed URL</DisplayName>
    <Connector>cloud-storage-extension-example</Connector>
    <Action>generateSignedURL</Action>
    <Input><![CDATA[{
        "fileName" : "example-text.txt",
        "expiresOn" : "2018-08-05"
    }]]></Input>
    <Output>storage.url.retrieved</Output>
</ConnectorCallout>

Wartość zwracana przez rozszerzenie wygląda mniej więcej tak:

{"url":"https://storage.googleapis.com/storage-extension-example/example-text.txt?GoogleAccessId=extension-test%40my-test-33333.iam.gserviceaccount.com&Expires=1533427200&Signature=Y1cE1DCHesWeIZILRhdIuDR%2FhzZXZ%2BPeY3J1PUkRiosFYj41itHBWh2%2BTQgH9kI6E8s2mWrVDFU43YR7s8Tm9W5VgWRwh0nXSactQ0xKbkKbGZmCcWxgIscOezc1zc%2Bp7lnXSx1qd4wIlIKVH4KCd9WLx4qB1dLxGNxMKB32tA3dio5IiMXaHEA%2FR2fYc0Pjh45t8L5rilk5pekv7jfd3sfsgdfgfdglkj%2F7E%2FlJ%2B60RnetqV2IDqrc0sVEgSLTpgTbDGU%2Ft3EcitRUFOSdOb5czt7CiIwKAYSmDEFMSNHHiNTWjvLzq4IU%2BCa4Z5aKyvww%3D%3D"}

Zasady przypisywania wiadomości odzyskują wartość zwracaną przez rozszerzenie i kopiują ją do treści odpowiedzi.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<AssignMessage async="false" continueOnError="false" enabled="true" name="Assign-Storage-File-URL">
    <DisplayName>Assign Storage File URL</DisplayName>
    <AssignTo type="response" createNew="false"/>
    <Set>
        <Payload contentType="application/json">{storage.url.retrieved}</Payload>
    </Set>
</AssignMessage>

Działania

downloadFile

Pobiera określony plik.

Parametry żądania

Parametr Opis Typ Domyślny Wymagane
fileName Plik do pobrania. Ciąg znaków Brak. Tak.

Składnia

<Input><![CDATA[{"fileName" : "the-file-to-download"}]]></Input>

Przykład

<Input><![CDATA[{"fileName" : "example-text.txt"}]]></Input>

Odpowiedź

JSON reprezentujący obiekt z zawartością pobranego pliku. Na przykład:

{"content":"Some example text."}

listFiles

Wyświetla listę plików dostępnych do pobrania.

Parametry żądania

Brak.

Odpowiedź

tablica nazw plików. Na przykład:

["example-text.txt","example-image.png"]

generateSignedURL

Tworzy podpisany adres URL do określonego pliku w zasobniku. Ten adres URL umożliwia pobranie pliku.

Parametry żądania

Parametr Opis Typ Domyślny Wymagane
fileName Nazwa obiektu Cloud Storage, dla którego ma zostać wygenerowany podpisany URL. Ciąg znaków Brak. Tak.
expiresOn Data, w której podpisany adres URL ma wygasnąć. Ciąg znaków Brak. Nie.

Składnia

<Input><![CDATA[{
  "fileName" : "file-for-which-to-generate-url",
  "expiresOn" : "date-to-expire-url"
}]]></Input>

Przykład

<Input><![CDATA[{
  "fileName" : "example-text.txt",
  "expiresOn" : "2018-08-05"
}]]></Input>

Odpowiedź

Obiekt JSON reprezentujący obiekt z podpisanym adresem URL. Na przykład:

{"url":"https://storage.googleapis.com/storage-extension-example/example-text.txt?GoogleAccessId=extension-test%40my-test-33333.iam.gserviceaccount.com&Expires=1533427200&Signature=Y1cE1DCHesWeIZILRhdIuDR%2FhzZXZ%2BPeY3J1PUkRiosFYj41itHBWh2%2BTQgH9kI6E8s2mWrVDFU43YR7s8Tm9W5VgWRwh0nXSactQ0xKbkKbGZmCcWxgIscOezc1zc%2Bp7lnXSx1qd4wIlIKVH4KCd9WLx4qB1dLxGNxMKB32tA3dio5IiMXaHEA%2FR2fYc0Pjh45t8L5rilk5pekv7jfd3sfsgdfgfdglkj%2F7E%2FlJ%2B60RnetqV2IDqrc0sVEgSLTpgTbDGU%2Ft3EcitRUFOSdOb5czt7CiIwKAYSmDEFMSNHHiNTWjvLzq4IU%2BCa4Z5aKyvww%3D%3D"}

Informacje o konfiguracji

Podczas konfigurowania i wdrażania tego rozszerzenia do użycia w serwerach proxy API postępuj zgodnie z tymi instrukcjami. Instrukcje konfigurowania rozszerzenia za pomocą konsoli Apigee znajdziesz w artykule Dodawanie i konfigurowanie rozszerzenia.

Właściwości wspólne rozszerzeń

Dla każdego rozszerzenia dostępne są poniższe właściwości.

Usługa Opis Domyślnie Wymagany
name Nazwa nadana konfiguracji rozszerzenia. Brak Tak
packageName Nazwa pakietu rozszerzeń podana przez Apigee Edge. Brak Tak
version Numer wersji pakietu rozszerzenia, z którego konfigurujesz rozszerzenie. Brak Tak
configuration Wartość konfiguracji specyficzna dla dodawanego rozszerzenia. Zobacz Właściwości tego pakietu rozszerzeń Brak Tak

Właściwości tego pakietu rozszerzeń

Właściwość Opis Domyślny Wymagane
bucketName Kosz GCS, z którym ma współpracować to rozszerzenie. Brak. Tak.