Extension Google Cloud Storage

Vous consultez la documentation d'Apigee Edge.
Consultez la documentation Apigee X.
en savoir plus

Version: 1.4.1

Listez, téléchargez et générez des URL signées pour les fichiers d'un bucket Cloud Storage.

Ce contenu fournit une documentation de référence sur la configuration et l'utilisation de cette extension. Avant d'utiliser cette extension à partir d'un proxy d'API, vous devez:

  1. Créez un bucket Cloud Storage.

  2. Importez des objets dans le bucket.

  3. Accordez l'autorisation d'accéder au bucket au compte de service GCP qui représente votre extension Google Cloud Storage. Pour en savoir plus sur le rôle à utiliser, consultez la page Rôles Cloud Storage. Pour en savoir plus sur les autorisations dans Cloud Storage, consultez la page Utiliser des autorisations IAM (Identity and Access Management).

  4. Utilisez la console GCP pour générer une clé pour le compte de service.

  5. Utilisez le contenu du fichier JSON de clé obtenu lorsque vous ajoutez et configurez l'extension à l'aide des documents de référence de configuration.

À propos de Cloud Storage

Cloud Storage est un service de stockage de fichiers sécurisé, durable et évolutif. Si vous faites vos premiers pas avec Cloud Storage, le guide de démarrage rapide de la documentation Cloud Storage constitue un bon point de départ.

Samples

Les exemples suivants illustrent comment configurer la compatibilité avec les actions de l'extension Cloud Storage à l'aide de la règle ExtensionCallout.

Répertorier les fichiers

Dans l'exemple suivant, l'action listFiles de l'extension récupère la liste des fichiers et les renvoie dans un tableau. L'action listFiles n'accepte aucun paramètre d'entrée.

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

La valeur de la réponse se présente comme suit:

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

La stratégie "Assign Message" (Attribuer des messages) suivante récupère la valeur de la réponse de la stratégie ExtensionCallout ci-dessus et la copie dans la charge utile de la réponse.

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

Télécharger un fichier

La règle ExtensionCallout suivante utilise l'extension Google Cloud Storage pour télécharger un fichier texte simple dont le contenu est simplement 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>

La valeur de la réponse se présente comme suit:

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

La stratégie "Attribuer des messages" suivante récupère la valeur renvoyée par l'extension et la copie dans la charge utile de la réponse.

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

Générer une URL signée

La règle ExtensionCallout suivante utilise cette extension pour générer une URL permettant de télécharger le fichier spécifié à partir du bucket Cloud Storage. Elle transmet le nom du fichier, ainsi que la date après laquelle l'URL doit expirer et ne plus fonctionner.

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

La valeur renvoyée par l'extension se présente comme suit :

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

La stratégie "Attribuer des messages" suivante récupère la valeur renvoyée par l'extension et la copie dans le corps de la réponse.

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

Actions

downloadFile

Télécharge le fichier spécifié.

Paramètres de requête

Paramètres Description Type Par défaut Obligatoire
fileName Fichier à télécharger. Chaîne Aucune Oui.

Syntaxe

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

Exemple

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

Réponse

JSON représentant un objet avec le contenu du fichier téléchargé. Exemple :

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

listFiles

Liste les fichiers pouvant être téléchargés.

Paramètres de requête

Aucune

Réponse

Tableau de noms de fichiers. Exemple :

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

generateSignedURL

Crée une URL signée pour le fichier spécifié dans le bucket. Cette URL peut être utilisée pour télécharger le fichier.

Paramètres de requête

Paramètres Description Type Par défaut Obligatoire
fileName Nom de l'objet Cloud Storage pour lequel vous souhaitez générer une URL signée. Chaîne Aucune Oui.
expiresOn Date d'expiration de l'URL signée. Chaîne Aucune Non.

Syntaxe

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

Exemple

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

Réponse

JSON représentant un objet avec l'URL signée. Exemple :

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

Documentation de référence sur la configuration

Utilisez le code suivant lorsque vous configurez et déployez cette extension pour l'utiliser dans des proxys d'API. Pour savoir comment configurer une extension à l'aide de la console Apigee, consultez Ajouter et configurer une extension.

Propriétés d'extension courantes

Les propriétés suivantes sont présentes pour chaque extension.

Propriété Description Par défaut Obligatoire
name Nom que vous attribuez à cette configuration de l'extension. Aucune Oui
packageName Nom du package d'extension tel qu'indiqué par Apigee Edge. Aucune Oui
version Numéro de version du package d'extension à partir duquel vous configurez une extension. Aucune Oui
configuration Valeur de configuration spécifique à l'extension que vous ajoutez. Consultez Propriétés de ce package d'extension. Aucune Oui

Propriétés de ce package d'extension

Propriété Description Par défaut Obligatoire
bucketName Bucket GCS avec lequel cette extension doit interagir. Aucune Oui.