FTP_RMDIR - Remover Diretório do Servidor FTP
O que é este Node?
O FTP_RMDIR é o node responsável por remover diretórios vazios de um servidor FTP remoto. Permite limpar estruturas de pastas obsoletas.
Por que este Node existe?
Manter estrutura de diretórios limpa evita confusão e desperdício de espaço. O FTP_RMDIR existe para:
- Limpeza Automática: Remover pastas vazias após processar todos os arquivos
- Manutenção: Apagar diretórios temporários que não são mais necessários
- Reorganização: Limpar estrutura antiga antes de criar nova organização
- Gerenciar Espaço: Remover diretórios obsoletos de projetos finalizados
Como funciona internamente?
Quando o FTP_RMDIR é executado, o sistema:
- Conecta ao FTP: Estabelece conexão com servidor
- Valida Caminho: Confirma que path foi fornecido
- Verifica Vazio: Maioria dos servidores só remove diretórios vazios
- Executa RMD: Envia comando RMD (remove directory) ao servidor
- Remove Diretório: Servidor apaga a pasta especificada
- Registra Operação: Captura timestamp da remoção
- Se falhar: Retorna erro (pasta não vazia, não existe, sem permissão)
- Se sucesso: Confirma remoção com caminho e timestamp
Nota: Este node não existe no código atual do FTP executor. A implementação base suporta apenas: upload, download, list, delete, rename. Para remover diretórios via FTP, seria necessário extend o executor.
Quando você DEVE usar este Node?
Use FTP_RMDIR sempre que precisar de remover diretórios vazios do FTP:
Casos de uso
- Limpeza Pós-Processamento: "Remover /temp/processing_123/ após finalizar"
- Manutenção Semanal: "Apagar pastas vazias de /uploads/ toda semana"
- Projeto Finalizado: "Remover /projects/projeto_antigo/ quando concluído"
Quando NÃO usar FTP_RMDIR
- Diretório Não Vazio: Primeiro apague todos os arquivos com FTP_DELETE
- Estrutura Ativa: Não remova pastas ainda em uso
- Recursivo: FTP_RMDIR remove apenas diretório especificado (não subpastas)
Parâmetros Detalhados
remotePath (string, obrigatório)
O que é: Caminho completo do diretório vazio a ser removido.
Padrão: Nenhum (obrigatório)
Flow completo para testar:
{
"name": "Teste FTP Rmdir - RemotePath",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "input_1",
"type": "input",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Pasta a Remover",
"parameters": {
"message": "Qual pasta remover? (deve estar vazia)",
"variableName": "pasta_remover"
}
}
},
{
"id": "ftp_1",
"type": "ftp",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Remover Diretório",
"parameters": {
"host": "ftp.example.com",
"username": "user",
"password": "pass",
"operation": "rmdir",
"remotePath": "{{pasta_remover}}",
"outputVariable": "rmdir_result"
}
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 700, "y": 100 },
"data": {
"label": "Confirmar",
"parameters": {
"message": "🗑️ Diretório removido: {{rmdir_result.path}}"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 900, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "input_1" },
{ "source": "input_1", "target": "ftp_1" },
{ "source": "ftp_1", "target": "message_1" },
{ "source": "message_1", "target": "end_1" }
]
}
Teste: Digite "/temp/old_folder". Pasta vazia será removida.
Parâmetros
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
| host | string | Sim | Endereço do servidor FTP |
| port | number | Não | Porta TCP (padrão: 21) |
| username | string | Sim | Nome de usuário |
| password | string | Sim | Senha |
| secure | boolean | Não | FTPS - SSL/TLS (padrão: false) |
| operation | string | Sim | Deve ser "rmdir" |
| remotePath | string | Sim | Caminho do diretório vazio a remover |
| outputVariable | string | Não | Variável de resultado (padrão: ftp_result) |
Exemplo 1: Limpar Pasta Temporária Após Processamento
Objetivo: Apagar arquivos e então remover diretório temporário
JSON para Importar
{
"name": "Limpar Temp Completo",
"nodes": [
{
"id": "start_1",
"type": "start",
"position": { "x": 100, "y": 100 },
"data": { "label": "Início" }
},
{
"id": "ftp_list",
"type": "ftp",
"position": { "x": 300, "y": 100 },
"data": {
"label": "Listar Arquivos Temp",
"parameters": {
"host": "ftp.server.com",
"username": "user",
"password": "pass",
"operation": "list",
"remotePath": "/temp/session_123/",
"outputVariable": "arquivos_temp"
}
}
},
{
"id": "message_1",
"type": "message",
"position": { "x": 500, "y": 100 },
"data": {
"label": "Info",
"parameters": {
"message": "🧹 Limpando {{arquivos_temp.count}} arquivos..."
}
}
},
{
"id": "ftp_rmdir",
"type": "ftp",
"position": { "x": 700, "y": 100 },
"data": {
"label": "Remover Pasta Temp",
"parameters": {
"host": "ftp.server.com",
"username": "user",
"password": "pass",
"operation": "rmdir",
"remotePath": "/temp/session_123/",
"outputVariable": "pasta_removida"
}
}
},
{
"id": "message_2",
"type": "message",
"position": { "x": 900, "y": 100 },
"data": {
"label": "Finalizar",
"parameters": {
"message": "✅ Limpeza completa!\nPasta removida: {{pasta_removida.path}}"
}
}
},
{
"id": "end_1",
"type": "end",
"position": { "x": 1100, "y": 100 },
"data": { "label": "Fim" }
}
],
"edges": [
{ "source": "start_1", "target": "ftp_list" },
{ "source": "ftp_list", "target": "message_1" },
{ "source": "message_1", "target": "ftp_rmdir" },
{ "source": "ftp_rmdir", "target": "message_2" },
{ "source": "message_2", "target": "end_1" }
]
}
Saída esperada:
Sistema: 🧹 Limpando 3 arquivos...
Sistema: ✅ Limpeza completa!
Pasta removida: /temp/session_123/
Resposta do Node
{
"success": true,
"data": {
"ftp_result": {
"success": true,
"path": "/temp/session_123/",
"removedAt": "2025-01-15T11:00:00.000Z"
},
"operation": "rmdir",
"host": "ftp.server.com",
"timestamp": "2025-01-15T11:00:00.000Z"
},
"executionTime": 198
}
Boas Práticas
✅ SIM:
- Garantir que diretório está vazio antes de remover
- Usar FTP_LIST para confirmar ausência de arquivos
- Apagar arquivos primeiro com FTP_DELETE em loop
❌ NÃO:
- Não tentar remover pasta com arquivos dentro
- Não remover diretórios ativos ou em uso
- Não confiar que remoção sempre funcionará (sempre trate erros)
Dicas
💡 Dica 1: FTP_RMDIR só remove diretórios VAZIOS. Para remover com arquivos, apague arquivos primeiro.
💡 Dica 2: Sequência correta: FTP_LIST → (LOOP + FTP_DELETE) → FTP_RMDIR
💡 Dica 3: Se erro "Directory not empty", ainda há arquivos ou subpastas. Liste para verificar.
Próximos Nodes
→ FTP_DELETE - Apagar arquivos antes de remover pasta → FTP_LIST - Verificar se pasta está vazia → FTP_MKDIR - Criar novo diretório → LOOP - Iterar sobre arquivos para apagar todos