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