Rozszerzenie Google Cloud Storage

Wyświetlasz dokumentację Apigee Edge.
Przejdź do dokumentacji Apigee X.
info

Wersja: 1.4.1

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

Te treści zawierają informacje o konfigurowaniu i używaniu tego rozszerzenia. Zanim zaczniesz korzystać z tego rozszerzenia w proxy interfejsu API, musisz:

  1. Utworzyć zasobnik Cloud Storage.

  2. Przesłać obiekty do zasobnika.

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

  4. Wygenerować klucz konta usługi w konsoli GCP.

  5. Podczas dodawania i konfigurowania rozszerzenia za pomocą odwołania do konfiguracji użyć zawartości wynikowego pliku JSON klucza.

Informacje o Cloud Storage

Cloud Storage to usługa bezpiecznego, trwałego i skalowalnego przechowywania plików. Jeśli dopiero zaczynasz korzystać z Cloud Storage, dobrym miejscem na początek jest samouczek wprowadzający w dokumentacji Cloud Storage.

Przykłady

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

Wyświetlanie listy plików

W tym przykładzie działanie listFiles rozszerzenia pobiera listę plików i zwraca je w postaci tablicy. Działanie listFiles nie przyjmuje ż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ść reakcji wygląda mniej więcej tak:

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

Ta zasada Assign Message pobiera wartość odpowiedzi z zasady ExtensionCallout powyżej i kopiuje ją w ł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

Ta zasada ExtensionCallout używa 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."}

Ta zasada Assign Message pobiera wartość zwróconą przez rozszerzenie i kopiuje ją w ł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

Ta zasada ExtensionCallout używa tego rozszerzenia do wygenerowania adresu URL umożliwiającego pobranie określonego pliku z zasobnika 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"}

Ta zasada Assign Message pobiera wartość zwróconą przez rozszerzenie i kopiuje ją w 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 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 adres URL. Ciąg znaków Brak. Tak.
expiresOn Data, po której podpisany adres URL powinien 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ź

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

Odwołanie do konfiguracji

Użyj tych informacji podczas konfigurowania i wdrażania tego rozszerzenia do użytku w proxy interfejsu API. Aby dowiedzieć się, jak skonfigurować rozszerzenie za pomocą konsoli Apigee, przeczytaj artykuł Dodawanie i konfigurowanie rozszerzenia.

Wspólne właściwości rozszerzenia

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 rozszerzenia

Właściwość Opis Domyślny Wymagane
bucketName Zasobnik GCS, z którym to rozszerzenie ma wchodzić w interakcję. Brak. Tak.