Extension Google Cloud Storage

<ph type="x-smartling-placeholder"></ph> Vous consultez la documentation Apigee Edge.
Accédez à la page Documentation sur Apigee X.
En savoir plus

<ph type="x-smartling-placeholder">

Version: 1.4.1

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 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. Générez une clé pour le compte de service à l'aide de la console GCP.

  5. Utilisez le contenu du fichier JSON de clé obtenu lors de l'ajout et de la configuration de l'extension à l'aide de la documentation 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 est un bon point de départ.

Exemples

Les exemples suivants montrent comment configurer la prise en charge des actions d'extension Cloud Storage à l'aide de la règle ExtensionCall.

Répertorier les fichiers

Dans l'exemple suivant, l'action listFiles de l'extension récupère une 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 ressemble à ceci:

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

La stratégie "Attribuer un message" suivante récupère la valeur de la réponse de la règle ExtensionCall 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 ExtensionAccroche 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 d'attribution de 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 d'attribution de 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

<ph type="x-smartling-placeholder">

téléchargerFichier

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

Paramètres de requête

Paramètre Description Type Par défaut Obligatoire
fileName Fichier à télécharger. Chaîne Aucun 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

Aucun

Réponse

Tableau de noms de fichiers. Exemple :

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

generateSignedURL

Crée une URL signée pour un 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 Par défaut Obligatoire
fileName Nom de l'objet Cloud Storage pour lequel générer une URL signée. Chaîne Aucun Oui.
expiresOn Date à laquelle l'URL signée doit expirer. Chaîne Aucun 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

Procédez comme suit lorsque vous configurez et déployez cette extension afin de 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 courantes des extensions

The following properties are present for every extension.

Property Description Default Required
name Name you're giving this configuration of the extension. None Yes
packageName Name of the extension package as given by Apigee Edge. None Yes
version Version number for the extension package from which you're configuring an extension. None Yes
configuration Configuration value specific to the extension you're adding. See Properties for this extension package None Yes

Propriétés de ce package d'extension

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