Rozszerzenie Google Cloud Storage

Przeglądasz dokumentację Apigee Edge.
Przejdź do Dokumentacja Apigee X.
informacje.

Wersja: 1.4.2

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

W tym artykule znajdziesz informacje na temat konfigurowania i używania tego rozszerzenia. Przed użyciem tego rozszerzenia z 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 Google Cloud Storage. Więcej informacji o rolach, które można wykorzystać, znajdziesz w artykule o rolach 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 dla konta usługi za pomocą konsoli GCP.

  5. Użyj zawartości wynikowego pliku JSON klucza podczas dodawania i konfigurowania rozszerzenia w dokumentacji konfiguracji.

Informacje o Cloud Storage

Cloud Storage to usługa umożliwiająca bezpieczne, trwałe i skalowalne przechowywanie plików. Jeśli dopiero zaczynasz korzystać z Cloud Storage, zapoznaj się z krótkim wprowadzeniem 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 poniższym 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"]

Poniższa zasada Assign Message (Przypisywanie wiadomości) pobiera wartość odpowiedzi z powyższej zasady ExtensionCallout 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

Poniższa zasada ExtensionCallout używa rozszerzenia Google Cloud Storage do pobrania prostego pliku tekstowego, którego zawartość to 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 Assign Message (Przypisywanie 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 wygenerowania adresu URL umożliwiającego pobranie określonego pliku z zasobnika Cloud Storage. Przekazuje ono 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>

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 Assign Message (Przypisz 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

pobieranie

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 dla określonego pliku w zasobniku. 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, w 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ź

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

Odniesienie do konfiguracji

Podczas konfigurowania i wdrażania tego rozszerzenia na potrzeby serwerów proxy interfejsu API użyj poniższych wskazówek. Instrukcje konfigurowania rozszerzenia za pomocą 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ślny Wymagane
bucketName Zasobnik GCS, z którym powinno wchodzić to rozszerzenie. Brak. Tak.