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:
Importez des objets dans le 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 la page Utiliser des autorisations IAM (Identity and Access Management).
Utilisez la console GCP pour générer une clé pour le compte de service.
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. |