Ir para o conteúdo

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

  1. 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
  2. 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.

Inserindo Arquivos no Sistema de Arquivos

  1. 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

Vinculando Diretórios a um Painel do Sistema de Arquivos

  1. 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.

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

diretórioexemplo.png

Exemplo de regra XP CRUD para criar uma subpasta