new VirtualFileSystem()
Classe para manipulação e acesso da Virtual File System (iVfs, CLASSE, iVfsLob) de uma base de dados.
Ao manipular arquivos na VirtualFileSystem deve-se ter cuidado com tamanho dos arquivos e a localização gravada. Por padrão, os arquivos do Vfs são sincronizados pelo cache local, o que pode gerar uma sobrecarga nas estações clientes. Para evitar este comportamento, grave arquivos em diretórios que tenham a propriedade "this.cachedVfsContent" de x-class configurada para false. Com isto, os arquivos serão gravados apenas no banco de dados (tabela iVfsLob)e serão enviados para a estação cliente apenas quando houver demanda através do método getFileContent() ou em uma solicitação HTTP.
Methods
-
<static> getInstance()
-
Obtém uma instância compartilhada desta classe.
Returns:
- Type
- VirtualFileSystem
-
commitTransaction()
-
Efetiva um bloco de alterações na VirtualFileSystem iniciado pelo método startTransaction.
-
createDirectory(name, parent)
-
Cria um novo diretório (classe) na Virtual File System.
Parameters:
Name Type Description name
string Nome do novo diretório.
parent
number Chave do diretório mãe, onde deve ser criado o novo diretório.
Returns:
Chave do diretório criado.
- Type
- number
-
createFile(fileName, content [, options])
-
Cria um novo arquivo na Virtual File System.
Para fins de compatibilidade, este método também aceita a seguinte assinatura:
createFile(fileName, content, baseDirectory, contentType);
Parameters:
Name Type Argument Description fileName
string Nome do novo arquivo com o caminho onde será criado. A extensão do arquivo será utilizada para detectar o tipo do conteúdo caso o parâmetro contentType não seja informado. O tipo do arquivo será considerado application/octet-stream se o contentType não for informado e se a extensão do arquivo não for conhecida.
content
string | File | MemoryStream Conteúdo do arquivo.
options
Object <optional>
Opções de criação do arquivo.
Properties
Name Type Argument Description baseDirectory
number | DBKey <optional>
Diretório/classe onde o arquivo deverá ser criado. Caso seja informado um path no nome do arquivo, ele será somado ao baseDirectory para determinar o path completo do arquivo.
contentType
string <optional>
Tipo do conteúdo do arquivo a ser criado. Caso não seja informado, será presumido a partir da extensão do arquivo. Será gerado um erro caso seja informado um tipo que não esteja cadastrado na classe "Tipos de Arquivos" (-1898187808).
key
number | DBKey <optional>
Chave que será atribuída ao novo arquivo.
Returns:
Chave do arquivo criado.
- Type
- number
-
deleteDirectory(key)
-
Exclui um diretório vazio.
Parameters:
Name Type Description key
number Chave do diretório.
-
deleteFile(key)
-
Exclui um arquivo que não esteja mais sendo referenciado por outros registros.
Parameters:
Name Type Description key
number Chave do arquivo.
-
deleteXFileAttributes(fileKey, attributeNames)
-
Exclui um conjunto de atributos de um arquivo da Virtual File System
Parameters:
Name Type Description fileKey
number Chave do arquivo que terá os seus atributos excluídos.
attributeNames
Array Vetor com os nomes dos atributos que devem ser removidos.
Example
virtualFS.deleteXFileAttributes(123456, ["origem", "autor"])
-
directoryExists(path)
-
Informa se o diretório informado existe.
Parameters:
Name Type Description path
string Caminho do diretório que deve ser localizado.
Returns:
Chave do diretório se for localizado um diretório ou null se não localizar.
- Type
- number
-
fileExists(path [, opt_baseDirectory])
-
Localiza um arquivo na Virtual File System. Se o path informado for um diretório, este método retornará a chave do arquivo índice deste diretório caso exista. Atualmente, os nomes dos índices de um diretório não são configuráveis, sendo fixados em: "index.iejs", "index.htm", "index.html", "index.wml" ou "iindex.htm".
Parameters:
Name Type Argument Description path
string Caminho do arquivo desejado.
opt_baseDirectory
number <optional>
Chave do diretório onde o arquivo deve ser localizado.
Returns:
Chave do arquivo localizado ou null se não localizar.
- Type
- number
-
forceDirectories(path)
-
Garante que o diretório informado e todos os sub-diretórios do path existem, criando-os caso seja necessário.
Parameters:
Name Type Description path
string Caminho do diretório que deve estar criado.
Returns:
Chave do diretório informado em path.
- Type
- number
-
formatFilePath(name, directory)
-
Formata o caminho de um arquivo com base no seu nome e diretório.
Este método é útil para simular o caminho que um arquivo terá na Virtual File System antes da sua criação ou modificação.
Parameters:
Name Type Description name
string Nome do arquivo.
directory
number | DBKey Diretório do arquivo.
Returns:
Caminho do arquivo
name
no diretóriodirectory
.- Type
- string
-
getDirectoryPath(key)
-
Obtém o caminho do diretório informado.
Parameters:
Name Type Description key
number Chave do diretório.
Returns:
Caminho completo do diretório informado incluindo a última barra.
- Type
- string
-
getFileContent(key [, allowNullMimeType])
-
Obtém o conteúdo do arquivo informado.
Parameters:
Name Type Argument Description key
number Chave do arquivo.
allowNullMimeType
boolean <optional>
Especifica se a função aceita arquivos com o mime type indefinido. Se false, o valor default, uma exceção será lançada para estes casos. Se o valor true for passado, esses arquivos serão tratados como arquivos texto.
Returns:
Conteúdo do arquivo.
- Type
- string
-
getFilePath(key)
-
Obtém o caminho do arquivo informado.
Parameters:
Name Type Description key
number | DBKey Chave do arquivo.
Returns:
Caminho do arquivo informado.
- Type
- string
-
getFileSize(key)
-
Obtém o tamanho do arquivo em bytes.
Parameters:
Name Type Description key
number | DBKey Chave do arquivo.
Returns:
Tamanho do arquivo em bytes.
- Type
- number
-
getXFileAttributes(fileKey)
-
Obtém os atributos de um arquivo da Virtual File System
Parameters:
Name Type Description fileKey
number Chave do arquivo da Virtual File System
Returns:
objeto com o atributos extras armazenados como propriedades.
- Type
- Object
Example
var attr = virtualFS.getXFileAttributes(123456) attr.origem
-
moveDirectory(key, newParent)
-
Move um diretório.
Parameters:
Name Type Description key
number Chave do diretório.
newParent
number Chave do novo diretório mãe.
-
moveFile(key, destinationDir)
-
Move um arquivo na iVFS aplicando as configurações de cache e permissões do diretório destino.
Parameters:
Name Type Description key
number Chave do arquivo.
destinationDir
number Chave do diretório para onde o arquivo será movido.
-
renameDirectory(key, newName)
-
Altera o nome de um diretório, ajustando a URL de todos os arquivos contidos nele.
Parameters:
Name Type Description key
number Chave do diretório.
newName
string Novo nome do diretório.
-
renameFile(key, newName)
-
Altera o nome de um arquivo existente.
Parameters:
Name Type Description key
number Chave do arquivo.
newName
string Novo nome do arquivo.
-
rollbackTransaction()
-
Desfaz um bloco de alterações na VirtualFileSystem iniciado pelo método startTransaction.
-
setFileContent(key, content [, opt_contentType])
-
Altera o conteúdo do arquivo informado. Se for necessário este método será responsável por codificar o conteúdo binário em base64 para que possa ser gravado no banco de dados. O uso de codificação é determinado pelo tipo do arquivo através do campo "Codificado em Base64" da tabela "Mime Types".
Parameters:
Name Type Argument Description key
number Chave do arquivo.
content
string | File | MemoryStream Conteúdo do arquivo.
opt_contentType
string <optional>
Tipo do conteúdo. Caso não seja informado, será mantido o tipo atual e apenas o conteúdo do arquivo será alterado.
-
setXFileAttributes(fileKey, attributes)
-
Preenche atributos extras em um arquivo da Virtual File System.
Parameters:
Name Type Description fileKey
number Chave do arquivo da Virtual File System
attributes
Object Objeto que contém a lista dos atributos e valores a serem configurados.
Example
virtualFS.setXFileAttributes(123456, {origem: "SONY DSC 40", autor: "User Name"})
-
startTransaction()
-
Inicia um bloco de alterações na VirtualFileSystem. As alterações somente serão realizadas quando for executado o método commitTransaction.
Sempre utilize este método em uma estrutura que garanta a execução do commit ou do rollback.Example
virtualFS.startTransaction() try { // Várias operações com virtualFS virtualFS.commitTransaction() } catch (e){ virtualFS.rollbackTransaction() throw e }