Esta é a documentação do Apigee Edge.
Acesse
Documentação da Apigee X. informações
Versão: 1.2.0
Liste, faça o download e gere URLs assinados para arquivos em um bucket do Cloud Storage.
Este conteúdo fornece referência para configurar e usar essa extensão. Antes de usar essa extensão de um proxy de API, você precisa:
Faça o upload de objetos no bucket.
Conceda permissão à conta de serviço do GCP que representa sua extensão do Google Cloud Storage para acessar o bucket. Para mais informações sobre o papel a ser usado, consulte Papéis do Cloud Storage. Para saber mais sobre permissões no Cloud Storage, consulte Como usar permissões do Identity and Access Management (IAM).
Use o Console do GCP para gerar uma chave para a conta de serviço.
Use o conteúdo do arquivo JSON da chave resultante ao adicionar e configurar a extensão usando a referência de configuração.
Sobre o Cloud Storage
O Cloud Storage é um serviço de armazenamento de arquivos seguro, durável e escalonável. Se você está começando a usar o Cloud Storage, o guia de início rápido na documentação do Cloud Storage é um bom ponto de partida.
Amostras
Os exemplos a seguir ilustram como configurar o suporte para ações de extensão do Cloud Storage usando a política Extension callout.
Listar arquivos
No exemplo a seguir, a ação listFiles
da extensão recupera uma lista dos arquivos e os retorna em uma matriz. A ação listFiles
não tem parâmetros de entrada.
<?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>
O valor da resposta é semelhante a este:
["example-text.txt","example-image.png"]
A política "Atribuir mensagem" a seguir recupera o valor de resposta da política Extension callout acima e o copia no payload de resposta.
<?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>
Fazer o download de um arquivo
A política Extension callout a seguir usa a extensão do Google Cloud Storage para fazer o download de um arquivo de texto simples com um conteúdo simplesmente 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>
O valor da resposta é semelhante a este:
{"content":"Some example text."}
A política "Atribuir mensagem" a seguir recupera o valor retornado pela extensão e o copia no payload de resposta.
<?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>
Gerar um URL assinado
A política ExtensionCall usa essa extensão para gerar um URL de download do arquivo especificado do bucket do Cloud Storage. Ele passa o nome do arquivo, junto com a data após a qual o URL deve expirar e deixar de funcionar.
<?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>
O valor de retorno da extensão é semelhante ao mostrado a seguir.
{"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"}
A política "Atribuir mensagem" a seguir recupera o valor retornado pela extensão e o copia no corpo da resposta.
<?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>
Ações
Baixar o Arquivo
Faz o download do arquivo especificado.
Parâmetros de solicitação
Parâmetro | Descrição | Tipo | Padrão | Obrigatório |
---|---|---|---|---|
fileName | O arquivo que será transferido. | String | Nenhum. | Sim. |
Sintaxe
<Input><![CDATA[{"fileName" : "the-file-to-download"}]]></Input>
Exemplo
<Input><![CDATA[{"fileName" : "example-text.txt"}]]></Input>
Resposta
JSON que representa um objeto com o conteúdo do arquivo transferido por download. Exemplo:
{"content":"Some example text."}
listFiles
Lista os arquivos disponíveis para download.
Parâmetros de solicitação
Nenhum.
Resposta
Uma matriz de nomes de arquivos. Exemplo:
["example-text.txt","example-image.png"]
generateSignedURL
Cria um URL assinado para o arquivo especificado no bucket. Esse URL pode ser usado para fazer o download do arquivo.
Parâmetros de solicitação
Parâmetro | Descrição | Tipo | Padrão | Obrigatório |
---|---|---|---|---|
fileName | Nome do objeto do Cloud Storage para o qual gerar um URL assinado. | String | Nenhum. | Sim. |
expiresOn | Data em que o URL assinado vai expirar. | String | Nenhum. | Não. |
Sintaxe
<Input><![CDATA[{
"fileName" : "file-for-which-to-generate-url",
"expiresOn" : "date-to-expire-url"
}]]></Input>
Exemplo
<Input><![CDATA[{
"fileName" : "example-text.txt",
"expiresOn" : "2018-08-05"
}]]></Input>
Resposta
JSON que representa um objeto com o URL assinado. Exemplo:
{"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"}
Referência de configuração
Use o seguinte ao configurar e implantar esta extensão para uso em proxies de API. Para ver as etapas para configurar uma extensão usando o console da Apigee, consulte Como adicionar e configurar uma extensão.
Propriedades de extensão comuns
As propriedades a seguir estão presentes para cada extensão.
Propriedade | Descrição | Padrão | Obrigatório |
---|---|---|---|
name |
Nome que será dado a esta configuração da extensão. | Nenhum | Sim |
packageName |
Nome do pacote de extensão fornecido pelo Apigee Edge. | Nenhum | Sim |
version |
Número da versão do pacote de extensão a partir do qual você está configurando uma extensão. | Nenhum | Sim |
configuration |
Valor de configuração específico da extensão que você está adicionando. Consulte Propriedades para este pacote de extensão. | Nenhum | Sim |
Propriedades deste pacote de extensões
Propriedade | Descrição | Padrão | Obrigatório |
---|---|---|---|
bucketName | O bucket do GCS com o qual esta extensão deve interagir. | Nenhum. | Sim. |