Extension Google Cloud Storage

Vous consultez la documentation Apigee Edge.
Accédez à la documentation Apigee X.

Version : 2.0.2

Lister, télécharger et générer des URL signées pour les fichiers d'un bucket Cloud Storage.

Ce contenu fournit des informations de référence pour configurer et utiliser 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 votre bucket.

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

  4. Utilisez la console Google Cloud 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 de la documentation de référence sur la configuration.

À propos de Cloud Storage

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

Exemples

Les exemples suivants illustrent la configuration de la compatibilité avec les actions d'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 une liste de 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 ressemble à ceci :

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

La règle Assign Message suivante récupère la valeur de la réponse de la règle ExtensionCallout 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 dont le contenu est 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 règle Assign Message 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. Il 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 ressemble à ce qui 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 règle Assign Message 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ètre Description Type Valeur 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 disponibles au téléchargement.

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ètre Description Type Valeur par défaut Obligatoire
fileName Nom de l'objet Cloud Storage pour lequel 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 les éléments suivants 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.