Rozszerzenie Google Cloud Storage

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

Wersja: 2.0.2

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

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

  1. Utwórz zasobnik Cloud Storage.

  2. Przesyłaj obiekty do zasobnika.

  3. Przyznaj uprawnienia dostępu do zasobnika kontu usługi Google Cloud, 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. Wygeneruj klucz konta usługi za pomocą konsoli Google Cloud.

  5. Podczas dodawania i konfigurowania rozszerzenia za pomocą dokumentacji konfiguracji użyj zawartości utworzonego pliku JSON z kluczem.

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, warto zacząć od samouczka wprowadzającego w dokumentacji Cloud Storage.

Przykłady

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

Wyświetlanie listy plików

W przykładzie poniżej 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ść odpowiedzi wygląda mniej więcej tak:

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

Poniższa zasada Assign Message pobiera wartość odpowiedzi z 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

Te zasady ExtensionCallout korzystają z rozszerzenia Google Cloud Storage, aby pobrać plik tekstowy, 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 pobiera wartość zwróconą 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

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

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

Poniższe zasady przypisywania wiadomości pobierają wartość zwróconą 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 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 URL podpisany. 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

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

Wspólne 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 Bucket GCS, z którym to rozszerzenie powinno wchodzić w interakcję. Brak. Tak.