Rozszerzenie Google Cloud Storage

Przeglądasz dokumentację Apigee Edge.
Otwórz dokumentację Apigee X.
Informacje

Wersja: 1.4.1

Wyświetlanie listy, pobieranie i generowanie podpisanych adresów URL dla plików w zasobniku Cloud Storage.

Ta treść zawiera informacje na temat konfigurowania tego rozszerzenia i korzystania z niego. Zanim użyjesz tego rozszerzenia z poziomu serwera proxy interfejsu API, musisz:

  1. Utwórz zasobnik Cloud Storage.

  2. Prześlij obiekty do zasobnika.

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

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

  5. Podczas dodawania i konfigurowania rozszerzenia przy użyciu dokumentu dotyczącego konfiguracji użyj zawartości powstałego klucza pliku JSON.

Informacje o Cloud Storage

Cloud Storage to usługa zapewniająca bezpieczną, trwałą i skalowalną pamięć plików. Jeśli dopiero zaczynasz korzystać z Cloud Storage, na początek zapoznaj się z krótkim wprowadzeniem w dokumentacji Cloud Storage.

Sample

Poniższe przykłady pokazują, jak skonfigurować obsługę działań rozszerzeń Cloud Storage za pomocą zasady ExtensionCallout.

Wyświetlanie listy plików

W poniższym przykładzie działanie listFiles rozszerzenia pobiera listę plików i zwraca je w tablicy. Czynność listFiles nie przyjmuje 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"]

Poniższa zasada przypisywania wiadomości pobiera wartość odpowiedzi z powyższej zasady ExtensionCallout i kopiuje 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.filelist.retrieved}</Payload>
    </Set>
</AssignMessage>

Pobieranie pliku

Podane niżej zasady ExtensionCallout używają rozszerzenia Google Cloud Storage do pobrania prostego pliku tekstowego zawierającego 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."}

Poniższa zasada przypisywania wiadomości pobiera wartość zwrócona przez rozszerzenie i kopiuje 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

Poniższa zasada ExtensionCallout używa tego rozszerzenia do generowania adresu URL umożliwiającego pobranie określonego pliku z zasobnika Cloud Storage. Przekazuje ono nazwę pliku wraz z 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>

Zwracana wartość rozszerzenia 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"}

Poniższa zasada przypisywania wiadomości pobiera wartość zwrócona przez rozszerzenie i kopiuje 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ślne 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ź

Plik 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 dla określonego pliku w zasobniku. Możesz go użyć, aby pobrać plik.

Parametry żądania

Parametr Opis Typ Domyślne Wymagane
fileName Nazwa obiektu Cloud Storage, dla którego ma zostać wygenerowany podpisany adres URL. Ciąg znaków Brak. Tak.
expiresOn Data wygaśnięcia podpisanego adresu URL. 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ź

Plik 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"}

Dokumentacja konfiguracji

Skorzystaj z podanych niżej instrukcji podczas konfigurowania i wdrażania tego rozszerzenia na potrzeby serwerów proxy interfejsów API. Instrukcje konfigurowania rozszerzenia w konsoli Apigee znajdziesz w artykule Dodawanie i konfigurowanie rozszerzenia.

Typowe właściwości 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ślne Wymagane
bucketName Zasobnik GCS, z którym to rozszerzenie powinno wchodzić w interakcje. Brak. Tak.