NFS

Conheça o componente e saiba como utilizá-lo.

Informações importantes:

  • Devido a funcionalidades do protocolo NFS que funcionam apenas em redes privadas e locais, somente plataformas de SaaS dedicado são suportadas pelo componente.

  • Atualmente, a Digibee Integration Platform suporta apenas o NFS versão 3.

O componente NFS manipula arquivos. É possível listá-los, fazer o download e upload de arquivos e deletá-los.

Parâmetros

Dê uma olhada nos parâmetros de configuração do componente:

Parâmetro
Descrição
Valor padrão
Tipo de dado

Operations

Lista tipos de operação disponíveis - Hash Fields e Hash Payload.

N/A

String

Server IP

Número IP do servidor NFS.

N/A

String

Exported Path

Caminho completo (full path) do diretório exportado do servidor NFS (esse caminho é configurado no arquivo do servidor etc/exports).

N/A

String

Maximum Retries

Número máximo de tentativas de conexão ao servidor NFS.

3

Inteiro

UID

A sigla UID significa User Identifier (identificador de usuário). O Linux utiliza o número de UID para monitorar usuários e verificar suas permissões. Os arquivos e diretórios possuem inicialmente o mesmo UID do usuário que os criou. É usado para dar permissão de acesso ao arquivo.

N/A

Inteiro

GID

O termo GID significa Group Identifier (identificador de grupo). No Linux, os arquivos e diretórios são organizados em grupos. O GID de um arquivo é inicialmente herdado do usuário que cria o arquivo. É usado para dar permissão de acesso ao arquivo.

N/A

Inteiro

GIDs

Esse parâmetro é opcional. Ele representa uma lista de, no máximo, 16 números de GID aos quais o usuário faz parte. Deve ser separado por vírgula. Exemplo: 0,1.

N/A

String

File Name (DB)

Nome do arquivo ou full file path (ex.: tmp/processed/file.txt) do arquivo local utilizado para operações de download e upload e para operação de filtro na listagem.

N/A

String

Remote File Name (DB)

Nome do arquivo ou full file path (ex.: tmp/processed/file.txt) do arquivo do servidor NFS.

N/A

String

Remote Directory

Nome do diretório remoto.

/

String

Exact Match

É um filtro. Se ativado, irá buscar exatamente o que for especificado no campo File Name. Caso contrário, ele fará uma busca aproximada.

False

Booleano

Fail On Error

Se a opção estiver ativada, a execução do pipeline com erro será interrompida; do contrário, a execução do pipeline continua, mas o resultado da propriedade success será false na saída do componente.

False

Booleano

Para ter acesso ao diretório do servidor NFS pelo nosso componente, o arquivo /etc/exports deverá ser configurado usando o caractere * para mapear o IP do cliente. Isso ocorre porque os IPs dos pods kubernetes são efêmeros, obrigando o usuário a realizar o mapeamento global.

Ex: /home *(rw,sync,nohide)

Fluxo de mensagens

Entrada

Não é necessário nenhuma mensagem específica na entrada, bastando apenas configurar os campos necessários para cada operação.

Saída

List

{
"files": [
{
"name": "file.txt",
"isDirectory": false,
"lastModified": 1630959695395,
"size": 0,
"fileId": 137410,
"type": 1
}
],
"success": true
}

Upload e Download

{
"remoteDirectory": "/",
"fileName": "file.txt",
"remoteFileName": "file-remote.txt",
"success": true
}

Delete

{
"remoteDirectory": "/",
"remoteFileName": "file-remote.txt",
"success": true
}

Erro

{
"success": false,
"message": "com.digibee.pipelineengine.exception.PipelineEngineConfigurationException: Error loading connector nfs-connector. Error: com.digibee.pipelineengine.exception.PipelineEngineConfigurationException: com.emc.ecs.nfsclient.mount.MountException: mount failure, server: 192.168.56.101, export: /var/nfs/digibee, nfs version: 3, returned state: 13",
"error": "com.emc.ecs.nfsclient.mount.MountException: mount failure, server: 192.168.56.101, export: /var/nfs/digibee, nfs version: 3, returned state: 13"
}
  • success: “false”, pois ocorreu um erro na execução.

  • message: é a mensagem de erro do componente.

  • error: é a mensagem de erro recebida do conector NFS.

NFS em ação

Listando com filtro - Exact Match desativado

  • Server IP: 192.168.56.101

  • Exported Path: /var/nfs/general

  • Operation: LIST_FILTER

  • Remote Directory: /

  • File Name: test

  • Exact Match: desativado

  • UID: 0

  • GID: 0

  • Maximum Retries: 3

  • Fail On Error: desativado

Resposta

{
"files": [
{
"name": "test.txt",
"isDirectory": false,
"lastModified": 1630959695395,
"size": 0,
"fileId": 137410,
"type": 1
},
{
"name": "file-test.txt",
"isDirectory": false,
"lastModified": 1630959695395,
"size": 0,
"fileId": 137410,
"type": 1
}

],
"success": true
}

Listando com filtro - Exact Match ativado

  • Server IP: 192.168.56.101

  • Exported Path: /var/nfs/general

  • Operation: LIST_FILTER

  • Remote Directory: /

  • File Name: test.txt

  • Exact Match: ativado

  • UID: 0

  • GID: 0

  • Maximum Retries: 3

  • Fail On Error: desativado

Resposta

{
"files": [
{
"name": "test.txt",
"isDirectory": false,
"lastModified": 1630959695395,
"size": 0,
"fileId": 137410,
"type": 1
}
],
"success": true
}

Download

  • Server IP: 192.168.56.101

  • Exported Path: /var/nfs/general

  • Operation: DOWNLOAD

  • Remote Directory: /

  • File Name: file.txt

  • Remote File Name: file-remote.txt

  • UID: 0

  • GID: 0

  • Maximum Retries: 3

  • Fail On Error: desativado

Resposta


{
"remoteDirectory": "/",
"fileName": "file.txt",
"remoteFileName": "file-remote.txt",
"success": true
}

Upload

  • Server IP: 192.168.56.101

  • Exported Path: /var/nfs/general

  • Operation: UPLOAD

  • Remote Directory: /

  • File Name: file.txt

  • Remote File Name: file-remote.txt

  • UID: 0

  • GID: 0

  • Maximum Retries: 3

  • Fail On Error: desativado

Resposta

{
"remoteDirectory": "/",
"fileName": "file.txt",
"remoteFileName": "file-remote.txt",
"success": true
}

Delete

  • Server IP: 192.168.56.101

  • Exported Path: /var/nfs/general

  • Operation: DOWNLOAD

  • Remote Directory: /

  • Remote File Name: file-remote.txt

  • UID: 0

  • GID: 0

  • Maximum Retries: 3

  • Fail On Error: desabilitado

Resposta

{
"remoteDirectory": "/",
"remoteFileName": "file-remote.txt",
"success": true
}

Atualizado