Ir para o conteúdo

Upload de múltiplos arquivos S3 no Jitterbit App Builder

Introdução

Você pode usar o widget de Upload de Múltiplos Arquivos no App Builder junto com os serviços web da Amazon S3. Este artigo demonstra como isso pode ser feito.

Imagem 1

Requisitos

Para combinar o widget de Upload de Múltiplos Arquivos com as funcionalidades de armazenamento S3 da Amazon, você precisa de um campo exclusivo para adicionar ao início do nome do arquivo S3 para mapeá-lo dentro da aplicação. Este campo organizará os arquivos ao adicionar um prefixo ao nome do arquivo com um GUID e será usado para mapear para o bucket S3.

Imagem 2

Exemplo

Neste exemplo, GroupID será usado para o mapeamento do arquivo S3 e limitar o acesso ao arquivo para usuários pertencentes a esse grupo.

Imagem 3

Essa funcionalidade depende de uma tabela User, seja uma específica para a aplicação ou a tabela pública User_Read, desde que você consiga aplicar a função Who('userid') para identificar o usuário atual.

Imagem 4

Os grupos também devem ser configurados, e uma tabela UserGroup pode ser usada para aplicar segurança baseada em alcance.

Imagem 5

Na página onde os uploads ocorrerão, deve existir um painel que armazena o GUID, neste exemplo a tabela UserParameter com uma coluna para escolher o grupo ao qual o usuário pertence; este painel está no lado esquerdo neste exemplo.

Configure o widget de Upload de Múltiplos Arquivos em outro painel com um objeto de negócios direcionado UserParameter. No evento de Atualização deste objeto de negócios, configure três ações:

  • Uma regra de Inserção XP CRUD para inserir os arquivos no bucket S3. Nesta regra de Inserção, concatene GroupID + '/' + FileName.

  • Outra regra de inserção CRUD para criar registros em uma tabela local (neste exemplo, chamada S3File) contendo as informações do arquivo (mas não o conteúdo real do arquivo); garantir que o File Name seja armazenado de forma idêntica à inserção do bucket S3. Usar esta tabela para mapear para o arquivo S3 otimizará os tempos de carregamento da página, de modo que apenas um arquivo S3 seja acessado por vez.

  • (Opcional) Use o plugin Persistable – Refresh Row para otimizar a experiência do usuário.

O terceiro painel nesta página deve ter um objeto de negócios direcionado à tabela especificada na segunda inserção CRUD. Isso terá a coluna File Name com o prefixo GroupID. Vincule este painel ao primeiro painel UserParameter (neste exemplo, o da esquerda), com uma declaração LIKE no GroupID para o File Name. É aqui que o prefixo GUID do File Name entra em cena. Isso permitirá que o aplicativo limite o acesso aos arquivos S3 com base na configuração de sua escolha.

Image 6

Como o painel inferior está sobre a tabela local e não o bucket S3 real, o acesso para download do conteúdo real do arquivo será em uma página pop-up vinculada pelo FileName. A página pop-up terá um painel com a tabela do bucket S3 atrás dela.

Image 7

Vídeo de demonstração