Vous consultez la documentation d'Apigee Edge.
Accédez à la documentation sur Apigee X. info
Version: 2.0.0
Lister, télécharger et générer des URL signées pour les fichiers d'un bucket Cloud Storage.
Ce contenu fournit une documentation de référence pour configurer et utiliser cette extension. Avant d'utiliser cette extension à partir d'un proxy d'API, vous devez:
Importez des objets dans votre bucket.
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 Utiliser les autorisations IAM (Identity and Access Management).
Générez une clé pour le compte de service à l'aide de la console GCP.
Utilisez le contenu du fichier JSON de clé généré lorsque vous ajoutez et configurez l'extension à l'aide de la 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 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 montrent comment configurer la prise en charge des 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 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 règle Assign Message suivante récupère la valeur de réponse de la règle 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 simple fichier texte 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 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 à 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 à ceci :
{"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 AssignMessage 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
Répertorie 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 permet de 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 à laquelle l'URL signée doit expirer. | 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. |