Como Criar uma Estrutura de Diretório em Camadas
Por padrão, o bucket S3 da Amazon tem uma estrutura de diretório de hierarquia plana. Isso pode limitar an App Builder desenvolvedor de aplicativos ao tentar criar pastas e diretórios, no entanto, há uma solução alternativa App Builder descrito aqui usando regras CRUD que permitem que você imite a hierarquia em camadas de uma estrutura de pasta tradicional.
Nota
Para obter mais informações sobre a estrutura de diretório plano do Amazon S3 Bucket, consulte: https://docs.aws.amazon.com/AmazonS3/latest/user-guide/using-folders.html
Configuração de Solução Alternativa em App Builder
-
Parametrize o
S3OutgoingDataSourceID
- Crie uma nova coluna na tabela de parâmetros, chamada S3OutgoingDataSourceID
- Expor/tornar configurável a partir da IU no menu Configuração
- Especifique o DataSourceID. Para obter o DataSourceID, navegue até a Fonte de Dados S3 na Camada de Armazenamento de Dados, clique no ícone pop-up e aqui você está olhando para a URL resultante, especificamente para a parte que começa com 'DataSourceID' e termina antes do caractere '&'.
-
Crie uma regra CRUD para Cram de {{nm.ab}} --> Amazon S3
-
Nova regra CRUD, Cram
- Arquivo (Cram) (S3 Bucket - Diretório Cram {{…}} pasta)
-
Configuração CRUD para Regra:
- Objetivo: XP CRUD
- Ação: Cram
- Fonte de Dados de Origem: (YourApplicationDataSource)
- Fonte de Dados de Destino: Nome da sua Fonte de Dados S3. Por exemplo: S3 Outgoing
- Logic Layer: selecionado
- Target: File
-
Registre a regra CRUD no evento Save
-
Defina a lógica mvSQL para a regra, com as seguintes colunas configuradas:
- Índice 10: S3OutgoingDataSourceID tem como alvo o DataSourceID
- Índice 20: Para o diretório, use um Valor da string.. Isso se tornará o pai das subpastas
-
Índice 30: Para criar uma hierarquia, use o caractere 'Barra invertida' ('\') (sem destino especificado)
- Isso pode ser feito usando ${char(92)}
- Definir tipo de dados lógicos = String
-
Índice 40: Uma string concatenada; por exemplo:
'Financial Statements' || {{Barra invertida}} || FST.FinancialStatementName'
- O 'FST.FinancialStatementName' se torna a subpasta sob a pasta pai 'Financial Statement'
- Defina o tipo de dados lógicos = String
-
Index50: Este é um booleano que declara a pasta como um diretório
- Defina este booleano como 1 se você planeja criar uma pasta estrutura
- Defina este booleano como 0 se você não precisar de subpastas em seu bucket
- Defina o tipo de dados lógicos como Booleano
-
-
Execute os resultados da regra CRUD e confirme que não há erros
-
Execute os resultados da tabela 'File', após a regra Cram