NFS

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

Patricia Lopes Ribeiro avatar
Escrito por Patricia Lopes Ribeiro
Atualizado há mais de uma semana

IMPORTANTE: esta documentação foi descontinuada. Leia a documentação NFS atualizada no nosso novo portal de documentação.

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

Parâmetros de configuração

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

  • Operations: lista tipos de operação disponíveis - Hash Fields e Hash Payload.

  • Server IP: número IP do servidor NFS. Não aceita double braces

  • Exported Path: caminho completo do diretório exportado do servidor NFS (esse caminho é configurado no arquivo de servidor etc/exports). Não aceita double braces

  • Maximum Retries: número máximo de tentativas de conexão ao servidor NFS. Não aceita double braces

  • 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ão aceita double braces

  • 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ão aceita double braces

  • 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. Ex: 0,1. Não aceita double braces.

  • File Name: nome do arquivo local utilizado para operações de download e upload e para operação de filtro na listagem

  • Remote File Name: nome do arquivo do servidor NFS

  • Remote Directory: nome do diretório remoto.

  • Exact Match: é um filtro que, se ativado, irá buscar exatamente o que for especificado no campo File Name, caso contrário ele fará uma busca aproximada.

  • Fail On Error: se a opção estiver habilitada, 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.

IMPORTANTE: Para ter acesso ao diretório do servidor NFS pelo nosso componente, o arquivo /etc/exports deverá ser configurado usando o caracter * 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)

Plataformas Digibee suportadas

Apenas plataformas de Saas Dedicado.

Não é suportado em SaaS Digibee devido às características do protocolo NFS que funcionam somente em redes privadas e locais.

Versões suportadas

Suportamos somente o NFS versão 3.

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

1. Listando com filtro - Exact Match desabilitado

Server IP : 192.168.56.101

Exported Path: /var/nfs/general

Operation : LIST_FILTER,

Remote Directory: /

File Name: test,

Exact Match: desabilidato

UID: 0,

GID: 0,

Maximum Retries: 3,

Fail On Error: desabilitado

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
}

2- Listando com filtro - Exact Match habilitado

Server IP : 192.168.56.101

Exported Path: /var/nfs/general

Operation : LIST_FILTER,

Remote Directory: /

File Name: test.txt,

Exact Match: habilidato

UID: 0,

GID: 0,

Maximum Retries: 3,

Fail On Error: desabilitado

Resposta:

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

3- 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: desabilitado

Resposta:


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

4- 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: desabilitado

Resposta:

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

5- 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
}

Respondeu à sua pergunta?