Estensione Google Cloud Storage

Stai visualizzando la documentazione di Apigee Edge.
Vai alla documentazione di Apigee X.
informazioni

Versione: 1.4.1

Elenca, scarica e genera URL firmati per i file in un bucket Cloud Storage.

Questi contenuti forniscono riferimento per la configurazione e l'utilizzo di questa estensione. Prima di utilizzare questa estensione da un proxy API, devi:

  1. Crea un bucket Cloud Storage.

  2. Carica gli oggetti nel bucket.

  3. Concedi l'autorizzazione per accedere al bucket all'account di servizio Google Cloud che rappresenta l'estensione Google Cloud Storage. Per ulteriori informazioni sul ruolo da utilizzare, consulta Ruoli di Cloud Storage. Per ulteriori informazioni sulle autorizzazioni in Cloud Storage, vedi Utilizzo delle autorizzazioni IAM (Identity and Access Management).

  4. Utilizza la console di Google Cloud per generare una chiave per l'account di servizio.

  5. Utilizza i contenuti del file JSON della chiave risultante durante l'aggiunta e la configurazione dell'estensione utilizzando il riferimento di configurazione.

Informazioni su Cloud Storage

Cloud Storage è un servizio per l'archiviazione di file sicura, durevole e scalabile. Se hai appena iniziato a utilizzare Cloud Storage, la guida rapida nella documentazione di Cloud Storage è un buon punto di partenza.

Samples

I seguenti esempi mostrano come configurare il supporto per le azioni dell'estensione Cloud Storage utilizzando le norme relative ai callout estensione.

Elenco file

Nell'esempio seguente, l'azione listFiles dell'estensione recupera un elenco dei file, restituendoli in un array. L'azione listFiles non richiede parametri di input.

<?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>

Il valore della risposta sarà simile al seguente:

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

Il seguente criterio Assegna messaggio recupera il valore di risposta dal criterio ExtensionCallout riportato sopra e lo copia nel payload della risposta.

<?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>

Scaricare un file

Il seguente criterio ExtensionCallout utilizza l'estensione Google Cloud Storage per scaricare un semplice file di testo i cui contenuti sono semplicemente 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>

Il valore della risposta sarà simile al seguente:

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

Il seguente criterio Assegna messaggio recupera il valore restituito dall'estensione e lo copia nel payload della risposta.

<?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>

Genera un URL firmato

Il seguente criterio ExtensionCallout utilizza questa estensione per generare un URL per scaricare il file specificato dal bucket Cloud Storage. Trasmette il nome del file, insieme alla data dopo la quale l'URL deve scadere e non funzionare più.

<?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>

Il valore restituito dell'estensione è simile al seguente.

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

Il seguente criterio Assegna messaggio recupera il valore restituito dall'estensione e lo copia nel corpo della risposta.

<?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>

Azioni

downloadFile

Scarica il file specificato.

Parametri richiesta

Parametro Descrizione Tipo Predefinito Obbligatorie
fileName Il file da scaricare. Stringa Nessuna. Sì.

Sintassi

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

Esempio

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

Risposta

JSON che rappresenta un oggetto con i contenuti del file scaricato. Ad esempio:

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

listFiles

Elenca i file disponibili per il download.

Parametri richiesta

Nessuna.

Risposta

Un array di nomi di file. Ad esempio:

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

generateSignedURL

Crea un URL firmato per un file specificato nel bucket. Questo URL può essere utilizzato per scaricare il file.

Parametri richiesta

Parametro Descrizione Tipo Predefinito Obbligatorie
fileName Nome dell'oggetto Cloud Storage per cui generare un URL firmato. Stringa Nessuna. Sì.
expiresOn Data di scadenza dell'URL firmato. Stringa Nessuna. N.

Sintassi

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

Esempio

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

Risposta

JSON che rappresenta un oggetto con l'URL firmato. Ad esempio:

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

Riferimento per la configurazione

Utilizza quanto segue durante la configurazione e il deployment di questa estensione per l'utilizzo nei proxy API. Per i passaggi per configurare un'estensione utilizzando la console Apigee, consulta Aggiungere e configurare un'estensione.

Proprietà delle estensioni comuni

Per ogni estensione sono presenti le seguenti proprietà.

Proprietà Descrizione Predefinito Obbligatorio
name Il nome che assegni a questa configurazione dell'estensione. Nessuno
packageName Nome del pacchetto dell'estensione fornito da Apigee Edge. Nessuno
version Numero di versione del pacchetto dell'estensione da cui stai configurando un'estensione. Nessuno
configuration Valore di configurazione specifico per l'estensione che stai aggiungendo. Vedi Proprietà per questo pacchetto di estensioni Nessuno

Proprietà per questo pacchetto di estensioni

Proprietà Descrizione Predefinito Obbligatorie
bucketName Il bucket GCS con cui deve interagire questa estensione. Nessuna. Sì.