Manipulação de Diretório de Arquivos¶
Este artigo analisará o trabalho com manipulação de diretório de arquivos no Vinyl. Os tópicos abordados incluem mover arquivos entre binários e um sistema de arquivos, criar diretórios no Vinyl e vincular diretórios a um painel do sistema de arquivos.
Pré-requisitos¶
- É necessário configurar um sistema de arquivos em seu servidor Vinyl (local, S3 ou rede)
- É recomendado armazenar o DataSourceID do sistema de arquivos na tabela de parâmetros do aplicativo do qual você irá transferir arquivos
- O banco de dados do qual você está transferindo seus arquivos deve estar vinculado ao seu sistema de arquivos
Colunas em uma Tabela de Arquivos do Sistema de Arquivos¶
Coluna | Obrigatório (S/N) | Tipo de dados | Descrição |
---|---|---|---|
DataSourceID(*) | Sim | UUID | O DataSourceID da fonte de dados do sistema de arquivos |
Nome(*) | Sim | Corda | O nome do arquivo quando armazenado no sistema de arquivos |
Diretório(*) | Sim | Corda | O caminho do arquivo que está sendo armazenado no sistema de arquivos |
Nome Completo | Não | Corda | O nome do arquivo quando armazenado no sistema de arquivos |
ÉDiretório | Não | Booleano | Se o arquivo armazenado é ou não uma pasta |
Conteúdo | Não | Binário | O próprio arquivo |
Extensão | Não | Corda | A extensão do arquivo que está sendo armazenado |
CriadoEm | Não | Data/Hora | Quando o arquivo foi inserido no sistema de arquivos |
ModificadoEm | Não | Data/Hora | Quando o arquivo foi atualizado no sistema de arquivos |
Comprimento | Não | Inteiro | Comprimento do arquivo em bytes |
Ícone de pasta | Não | Binário | O ícone da pasta no sistema de arquivos |
Instruções para Mover Arquivos do Binário em uma Tabela de Vinyl para o Sistema de Arquivos¶
Pastas¶
- Se você já possui uma pasta no sistema de arquivos onde deseja armazenar os arquivos, então você não precisa configurar pastas através do Vinyl
-
Se você deseja criar uma pasta no sistema de arquivos, você precisará configurar as Regras no Vinyl para fazer isso:
- Crie uma regra de inserção XP CRUD do banco de dados principal do seu aplicativo visando a tabela de arquivos do seu sistema de arquivos
- As chaves da tabela de arquivos que devem ser direcionadas são DataSourceID (do seu sistema de arquivos), Nome (Nome do arquivo) e Diretório (Caminho de arquivo)
- DATASOURCEID(*)- Se você armazenou o DataSourceID do seu sistema de arquivos em sua tabela de parâmetros, você pode criar a regra a partir dessa tabela e usar esse campo parametrizado para direcione o DataSourceID.
- NOME(*)- Você pode usar o que quiser como nome do arquivo/pasta. É prática comum não usar o nome real do arquivo e gerar um novo nome ao armazenar em um sistema de arquivos por motivos de segurança.
- DIRETÓRIO(*)- Se a pasta for a pasta de nível mais alto em seu sistema de arquivos, use uma string em branco como o diretório. Se você estiver criando uma hierarquia de pastas, o diretório é o caminho do arquivo da pasta, o Vinyl assume automaticamente o primeiro '\' no caminho do arquivo.
- Defina o campo IsDirectory como '1' para todas as pastas. É assim que o Vinyl saberá como criar uma pasta no sistema de arquivos, em vez de tentar inseri-la como um arquivo.
- Registre a Regra de Inserção como uma Ação em um Evento e inicie esse Evento. Se você criou uma pasta de nível superior em seu sistema de arquivos, ela deverá aparecer na tabela de arquivos de seu sistema de arquivos; se a pasta/arquivo estiver em qualquer lugar, exceto no nível mais alto de seu sistema de arquivos, você terá que configurar páginas para verificá-la inserido corretamente ou entre em contato com alguém com acesso ao sistema de arquivos para confirmar se a pasta foi criada.
- As chaves da tabela de arquivos que devem ser direcionadas são DataSourceID (do seu sistema de arquivos), Nome (Nome do arquivo) e Diretório (Caminho de arquivo)
- Crie uma regra de inserção XP CRUD do banco de dados principal do seu aplicativo visando a tabela de arquivos do seu sistema de arquivos
Inserindo Arquivos no Sistema de Arquivos¶
-
Crie uma regra de inserção XP CRUD a partir da fonte de dados e da tabela da qual você está movendo os arquivos visando a tabela de arquivos do seu sistema de arquivos
- As chaves do arquivo são as mesmas da pasta
- DATASOURCEID(*)- O DataSourceID do sistema de arquivos, você pode codificar o valor ou cruzar na tabela de parâmetros se você o armazenou
- NOME(*)- É uma prática comum não usar o nome original do arquivo em seu sistema de arquivos, seja como for. Caso contrário, configure uma convenção de nomenclatura que seja consistente e fácil de lembrar. (Observação: se você planeja visualizar esse arquivo em um controle incorporado, deverá concatenar a extensão do arquivo ao final do nome. Há documentação SQL on-line que o ajudará a cortar a extensão do nome do arquivo original.)
- DIRETÓRIO(*)- O caminho onde o arquivo será armazenado. Uma série de nomes de pastas separados por '\'.
- Outro campo que precisa ser direcionado para arquivos é Conteúdo
- CONTEÚDO- O próprio arquivo. O binário que está sendo armazenado na tabela
- As chaves do arquivo são as mesmas da pasta
Vinculando Diretórios a um Painel do Sistema de Arquivos¶
-
Ao vincular a uma página usando um sistema de arquivos como fonte do painel, é necessário passar uma ligação para acessar seus arquivos
- No objeto do qual você está vinculando, você deve adicionar os campos aos quais irá vincular
- Os campos aos quais você irá vincular são os PK's da tabela Arquivo em seu sistema de arquivos (DataSourceID, Diretório e Nome)
- Onde quer que você esteja definindo seu link para a página do Sistema de Arquivos, você deve definir os campos que acabou de adicionar ao seu objeto como Critérios de Link. Você também pode conseguir isso entre painéis, se desejar.
- No objeto do qual você está vinculando, você deve adicionar os campos aos quais irá vincular
Exemplo de Regra XP CRUD para Criar Subpasta¶
Aqui está um exemplo de regra XP CRUD que instrui o Vinyl a criar uma subpasta chamada PaymentImport
fora do VinylData
pasta localizada no C:
dirigir. Este exemplo assume que o caminho da fonte de dados é C:/VinylData
.
Configuração de regras:
- Objetivo: XP CRUD
- Ação: Estudar
- Fonte de dados de origem: Fonte de dados da qual a regra se origina. Exemplo: InvoicePortal
- Fonte de dados de destino: fonte de dados que a regra está direcionando. Exemplo: Unidade C
- Camada de Destino: Camada Lógica
- Target: Tabela nomeada que a regra tem como alvo. Exemplo: Arquivo
Colunas definidas na regra:
- DataSourceID: 'b24b8338-5c91-4e92-8481-8605944a558d'
- Diretório: *
- Nome: 'PaymentImport'
- ÉDiretório: 1
Exemplo de regra XP CRUD para criar uma subpasta