Transferindo arquivos em um endpoint de servidor usando um cliente - AWS Transfer Family

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Transferindo arquivos em um endpoint de servidor usando um cliente

Você transfere arquivos pelo AWS Transfer Family serviço especificando a operação de transferência em um cliente. AWS Transfer Family suporta os seguintes clientes:

  • Oferecemos suporte à versão 3 do protocolo SFTP.

  • OpenSSH (macOS e Linux)

    nota

    Esse cliente funciona somente com servidores habilitados para File Transfer Protocol (SFTP) da Secure Shell (SSH).

  • WinSCP (Microsoft Windows somente)

  • Cyberduck (Windows, MacOS e Linux)

  • FileZilla (Windows, macOS e Linux)

As limitações a seguir se aplicam a cada cliente:

  • O protocolo SCP não é suportado, pois é considerado inseguro. Você pode usar o comando OpenSSH scp conforme descrito em. Usar o comando scp

  • O número máximo de sessões SFTP simultâneas e multiplexadas por conexão é 10.

  • Para conexões inativas, o valor do tempo limite é de 1800 segundos (30 minutos) para todos os protocolos (). SFTP/FTP/FTPS Se não houver atividade após esse período, o cliente poderá ser desconectado. Para conexões que não respondem:

    • O SFTP tem um tempo limite de 300 segundos (5 minutos) quando um cliente não responde completamente.

    • O FTPS e o FTP têm um tempo limite de aproximadamente 10 minutos sem resposta, gerenciado pela biblioteca subjacente.

  • O Amazon S3 e o Amazon EFS (devido ao NFSv4 protocolo) exigem que os nomes dos arquivos estejam na codificação UTF-8. Usar uma codificação diferente pode levar a resultados inesperados. Para o Amazon S3, consulte as Diretrizes de nomenclatura de chaves de objetos.

  • Para o protocolo de Transferência de Arquivos SSL (FTPS), somente o modo explícito é compatível. O modo implícito não é compatível.

  • Para o protocolo de Transferência de Arquivos (FTP) e FTPS, somente o modo passivo é compatível.

  • Para FTP e FTPS, somente o modo STREAM é compatível.

  • Para FTP e FTPS, somente o Image/Binary modo é suportado.

  • Para FTP e FTPS, o TLS TLS - PROT C (desprotegido) para a conexão de dados é o padrão, mas o PROT C não é suportado no protocolo FTPS. AWS Transfer Family Portanto, para FTPS, você precisa emitir PROT P para que sua operação de dados seja aceita.

  • Se você estiver usando o Amazon S3 para o armazenamento do seu servidor e se o seu cliente tiver a opção de usar várias conexões para uma única transferência, certifique-se de desativar a opção. Caso contrário, uploads de arquivos grandes podem falhar de forma imprevisível. Observe que, se você estiver usando o Amazon EFS como back-end de armazenamento, o EFS não oferece suporte a várias conexões para uma única transferência.

Veja a seguir uma lista dos comandos disponíveis para FTP e FTPS:

Comandos disponíveis

ABOR

FEAT

MLST

PASS

RETR

STOR

AUTH

LANG

MKD

PASV

RMD

STOU

COPO

LIST

MODE

PBSZ

RNFR

STRU

CWD

MDTM

NLST

PROT

RNTO

SYST

DELE

MFMT

NOOP

PWD

SIZE

TYPE

EPSV

MLSD

OPTS

QUIT

STAT

USER

nota

APPE não é compatível.

No momento, as operações a seguir não são compatíveis para usuários que usam o diretório inicial lógico em servidores que usam o Amazon Elastic File System (Amazon EFS).

Comandos SFTP incompatíveis

SSH_FXP_READLINK

SSH_FXP_SYMLINK

SSH_FXP_STAT quando o arquivo solicitado é um symlink

SSH_FXP_REALPATH quando o caminho solicitado contém qualquer componente symlink

Gerar um par de chaves pública-privada.

Antes de transferir um arquivo, você deve ter um par de chaves pública-privada disponível. Se você ainda não gerou um par de chaves, consulte Gere chaves SSH para usuários gerenciados por serviços.

SFTP/FTPS/FTPComandos disponíveis

A tabela a seguir descreve os comandos disponíveis para AWS Transfer Family, para os protocolos SFTP, FTPS e FTP.

nota

A tabela menciona arquivos e diretórios do Amazon S3, que só oferece suporte a buckets e objetos: não há hierarquia. No entanto, você pode usar prefixos em nomes de chaves de objetos para sugerir uma hierarquia e organizar seus dados de forma semelhante às pastas. Esse comportamento é descrito em Trabalhar com metadados de objetos no Guia do usuário do Amazon Simple Storage Service.

Comandos da SFTP/FTPS/FTP
Command Amazon S3 Amazon EFS
cd Compatível Compatível
chgrp Não compatível Compatível (apenas com root ou owner)
chmod Não compatível Compatível (apenas com root)
chmtime Não compatível Compatível
chown Não compatível Compatível (apenas com root)
get Compatível Compatível (incluindo resolução de links simbólicos)
ln -s Não compatível Compatível
ls/dir Compatível Compatível
mkdir Compatível Compatível
put Compatível Compatível
pwd Compatível Compatível
rename Compatível somente com arquivos
nota

A renomeação que substituiria um arquivo existente não é suportada.

Compatível
nota

Não há suporte para renomear um arquivo ou diretório existente.

rm Compatível Compatível
rmdir Compatível (somente diretórios vazios) Compatível
version Compatível Compatível

Encontre seu endpoint da Amazon VPC

Se o tipo de endpoint do seu servidor Transfer Family para VPC, identificar o endpoint a ser usado para transferir arquivos não é simples. Nesse caso, use o procedimento a seguir para localizar o endpoint da Amazon VPC.

Para encontrar seu endpoint Amazon VPC
  1. Navegue até a página de detalhes do seu servidor.

  2. No painel de Detalhes do endpoint, selecione o VPC.

    A página de detalhes do servidor do console Transfer Family, mostrando os detalhes do Endpoint de um servidor VPC.
  3. No painel do endpoint da Amazon VPC, selecione o ID do endpoint do VPC.

  4. Na lista de Nomes de DNS, o endpoint do seu servidor é o primeiro listado.

    A página Endpoints do console da Amazon VPC, mostrando os Nomes de DNS de um endpoint selecionado.

Evitar erros setstat

Alguns clientes de transferência de arquivos SFTP podem tentar alterar os atributos de arquivos remotos, incluindo timestamp e permissões, utilizando comandos como SETSTAT ao carregar o arquivo. No entanto, esses comandos não são compatíveis com sistemas de armazenamento de objetos, como o Amazon S3. Devido a essa incompatibilidade, os uploads de arquivos desses clientes podem resultar em erros, mesmo quando o arquivo é carregado com êxito em outras circunstâncias.

  • Quando você chama a API CreateServer ou UpdateServer, use a ProtocolDetails opção SetStatOption para ignorar o erro gerado quando o cliente tenta usar SETSTAT em um arquivo que você está carregando em um bucket do S3.

  • Defina o valor como ENABLE_NO_OP para que o servidor do Transfer Family ignore o comando SETSTAT e carregue arquivos sem precisar fazer alterações no cliente SFTP.

  • Observe que, embora a SetStatOption ENABLE_NO_OP configuração ignore o erro, ela gera uma entrada de registro em CloudWatch Logs, para que você possa determinar quando o cliente está fazendo uma chamada SETSTAT.

Para obter os detalhes da API dessa opção, consulte ProtocolDetails.

Usar OpenSSH

Esta seção contém instruções para transferir arquivos da linha de comando usando o OpenSSH.

nota

Esse cliente funciona somente com um servidor habilitado para SFTP.

Usar o OpenSSH

Para transferir arquivos AWS Transfer Family usando o utilitário de linha de comando OpenSSH
  1. No Linux ou MacOS ou Windows, abra um terminal de comando.

  2. No prompt, insira o seguinte comando:

    sftp -i transfer-key sftp_user@service_endpoint

    No comando anterior, sftp_user é o nome do usuário e transfer-key é a chave privada de SSH. Aqui service_endpoint está o endpoint do servidor, conforme mostrado no AWS Transfer Family console do servidor selecionado.

    nota

    Esse comando usa configurações que estão no ssh_config arquivo padrão. A menos que você tenha editado esse arquivo anteriormente, o SFTP usa a porta 22. Você pode especificar uma porta diferente (por exemplo, 2222) adicionando um -P sinalizador ao comando, da seguinte maneira.

    sftp -P 2222 -i transfer-key sftp_user@service_endpoint

    Como alternativa, se você sempre quiser usar a porta 2222 ou a porta 22000, poderá atualizar a porta padrão em seu ssh_config arquivo.

    Um prompt sftp deve ser exibido.

  3. (Opcional) Para visualizar o diretório inicial do usuário, digite o seguinte comando no prompt sftp:

    pwd

  4. Para carregar um arquivo do seu sistema de arquivos para o servidor Transfer Family, use o comando put. Por exemplo, para fazer o upload do hello.txt (supondo que o arquivo esteja no diretório atual do sistema de arquivos), execute o seguinte comando no prompt sftp:

    put hello.txt

    Uma mensagem semelhante à seguinte será exibida, indicando que a transferência de arquivos está em andamento ou foi concluída.

    Uploading hello.txt to /amzn-s3-demo-bucket/home/sftp_user/hello.txt

    hello.txt 100% 127 0.1KB/s 00:00

nota

Depois de o servidor ser criado, poderá demorar alguns minutos para que o nome do host do endpoint do seu servidor possa ser resolvido pelo serviço de DNS em seu ambiente.

Usar o comando scp

O Transfer Family não suporta o protocolo SCP. No entanto, você pode usar o comando scp OpenSSH se precisar dessa funcionalidade.

A recomendação para usar o SCP sobre SFTP é usar o OpenSSH versão 9.0 ou posterior. No OpenSSH versão 9 e posterior, scp o comando usa como padrão o protocolo SFTP para transferências de arquivos em vez do protocolo SCP legado.

Importante

Certifique-se de que seu servidor Transfer Family tenha sido configurado para usar o acesso a diretórios otimizado do S3.

Usar o WinSCP

Use as instruções a seguir para transferir arquivos a partir da linha de comando usando o WinSCP.

nota

Se você estiver usando o WinSCP 5.19, você pode se conectar diretamente ao Amazon S3 usando suas credenciais e arquivos. AWS upload/download Para obter mais detalhes, consulte Conectar-se ao serviço Amazon S3.

Para transferir arquivos AWS Transfer Family usando o WinSCP
  1. Abra o cliente WinSCP.

  2. Na caixa de diálogo Login, em Protocolo de arquivo, escolha um protocolo: SFTP ou FTP.

    Se você escolheu FTP, em Criptografia, selecione uma das seguintes opções:

    • Sem criptografia para FTP

    • Criptografia explícita TLS/SSL para FTPS

  3. Em Nome do host, insira o endpoint do servidor. O endpoint do servidor está localizado na página de Detalhes do servidor. Para obter mais informações, consulte Exibir detalhes do servidor SFTP, FTPS e FTP.

    Se seu servidor usa um endpoint do VPC, consulte Encontre seu endpoint da Amazon VPC.

  4. Em Número da porta, digite o seguinte:

    • 22 para SFTP

    • 21 para FTP/FTPS

  5. Em Nome do usuário, insira o nome do usuário que você criou para seu provedor de identidade específico.

    Dica: O nome de usuário deve ser um dos usuários que você criou ou configurou para seu provedor de identidade. AWS Transfer Family fornece os seguintes provedores de identidade:

  6. Escolha Avançado para abrir a caixa de diálogo Configurações avançadas do site. Na seção SSH, escolha Autenticação.

  7. Em Arquivo da chave privada, procure e selecione o arquivo de chave privada SSH no seu sistema de arquivos.

    Se o WinSCP oferecer a conversão da sua chave privada SSH para o formato PPK, escolha OK.

  8. Escolha OK para retornar à caixa de diálogo Login e escolha Salvar.

  9. Na caixa de diálogo Salvar sessão como site, escolha OK para concluir a configuração da conexão.

  10. Na caixa de diálogo Login, escolha Ferramentas e, em seguida, escolha Preferências.

  11. Na caixa de diálogo Preferências, em Transferir, escolha Resistência.

    Para a opção Habilitar transferência resume/transfer para nome de arquivo temporário para, escolha Desabilitar.

    Importante

    Se você deixar essa opção ativada, ela aumentará os custos de upload, diminuindo substancialmente o desempenho do upload. Isso também pode levar a falhas no upload de arquivos grandes.

  12. Em Transferir, escolha Segundo plano e desmarque a caixa de seleção Usar várias conexões para uma única transferência.

    Dica: se você deixar essa opção selecionada, os carregamentos de arquivos grandes podem falhar de forma imprevisível. Por exemplo, uploads órfãos de várias partes que incorrem em cobranças do Amazon S3 podem ser criados. A corrupção silenciosa de dados também pode ocorrer.

  13. Realize a transferência do seu arquivo.

    Você pode usar drag-and-drop métodos para copiar arquivos entre as janelas de destino e de origem. Você pode usar os ícones da barra de ferramentas para fazer upload/download, excluir, editar ou modificar as propriedades dos arquivos no WinSCP.

nota

Essa observação não se aplica se você estiver usando o Amazon EFS para armazenamento.

Comandos que tentam alterar atributos de arquivos remotos, incluindo registros de data/hora, não são compatíveis com sistemas de armazenamento de objetos, como o Amazon S3. Portanto, se você estiver usando o Amazon S3 para armazenamento, certifique-se de desativar as configurações de marcação de tempo do WinSCP (ou use o SetStatOption conforme descrito em Evitar erros setstat) antes de realizar transferências de arquivos. Para isso, na caixa de diálogo Configurações de transferência do WinSCP, desabilite a opção de upload Definir permissões e a opção comum Preservar marcação de tempo.

Usar o Cyberduck

Use as instruções a seguir para transferir arquivos a partir da linha de comando usando o Cyberduck.

Para transferir arquivos AWS Transfer Family usando o Cyberduck
  1. Abra o cliente Cyberduck.

  2. Escolha Abrir conexão.

  3. Na caixa de diálogo Abrir conexão, escolha um protocolo: SFTP (SSH File Transfer Protocol), FTP-SSL (AUTH TLS explícito) ou FTP (File Transfer Protocol).

  4. Em Nome do servidor, insira o endpoint do servidor. O endpoint do servidor está localizado na página de Detalhes do servidor. Para obter mais informações, consulte Exibir detalhes do servidor SFTP, FTPS e FTP.

    Se seu servidor usa um endpoint do VPC, consulte Encontre seu endpoint da Amazon VPC.

  5. Em Número da porta, digite o seguinte:

    • 22 para SFTP

    • 21 para FTP/FTPS

  6. Em Nome do usuário, insira o nome do usuário que você criou no Gerenciando usuários para endpoints de servidor.

  7. Se SFTP estiver selecionado, em Chave privada SSH, escolha ou insira a chave privada SSH.

  8. Selecione Conectar.

  9. Realize a transferência do seu arquivo.

    Dependendo de onde estão seus arquivos, siga um destes procedimentos:

    • Em seu diretório local (a origem), escolha os arquivos que você deseja transferir e arraste e solte-os no diretório do Amazon S3 (o destino).

    • No diretório do Amazon S3 (a origem), escolha os arquivos que você deseja transferir e arraste e solte-os no seu diretório local (o destino).

Use FileZilla

Use as instruções a seguir para transferir arquivos usando FileZilla.

FileZilla Para configurar uma transferência de arquivos
  1. Abra o FileZilla cliente.

  2. Escolha Arquivo e, em seguida, selecione Gerenciador de sites.

  3. Na caixa de diálogo Gerenciador de sites, escolha Novo site.

  4. Na guia Geral, em Protocolo, escolha um protocolo: SFTP ou FTP.

    Se você escolheu FTP, em Criptografia, selecione uma das seguintes opções:

    • Usar somente FTP simples (sem segurança) — para FTP

    • Usar FTP explícito sobre TLS, se disponível — para FTPS

  5. Em Nome do host, insira o protocolo que você está usando, seguido pelo endpoint do servidor. O endpoint do servidor está localizado na página de Detalhes do servidor. Para obter mais informações, consulte Exibir detalhes do servidor SFTP, FTPS e FTP.

    • Se você estiver usando SFTP, digite: sftp://hostname

    • Se você estiver usando FTPS, digite: ftps://hostname

    Certifique-se de hostname substituir pelo endpoint real do servidor.

    Se seu servidor usa um endpoint do VPC, consulte Encontre seu endpoint da Amazon VPC.

  6. Em Número da porta, digite o seguinte:

    • 22 para SFTP

    • 21 para FTP/FTPS

  7. Se SFTP estiver selecionado, em Tipo de logon, escolha Arquivo de chave.

    Em Arquivo de chave, escolha ou insira a chave privada SSH.

  8. Em Usuário, insira o nome do usuário que você criou no Gerenciando usuários para endpoints de servidor.

  9. Selecione Conectar.

  10. Realize a transferência do seu arquivo.

    nota

    Se você interromper uma transferência de arquivo em andamento, AWS Transfer Family poderá gravar um objeto parcial em seu bucket do Amazon S3. Se você interromper um upload, verifique se o tamanho do arquivo no bucket do S3 corresponde ao tamanho do arquivo do objeto de origem antes de continuar.

Usar um cliente Perl

Se você usa o cliente NET::SFTP::Foreign perl, você deve definir queue_size o. 1 Por exemplo:

my $sftp = Net::SFTP::Foreign->new('user@s-12345.server.transfer.us-east-2.amazonaws.com', queue_size => 1);

nota

Essa solução alternativa é necessária para revisões de Net::SFTP::Foreign anteriores à 1.92.02.

Use o LFTP

O LFTP é um cliente FTP gratuito que permite aos usuários realizar transferências de arquivos por meio da interface de linha de comando da maioria das máquinas Linux.

Para downloads de arquivos grandes, o LFTP tem um problema conhecido com pacotes fora de ordem, fazendo com que a transferência do arquivo falhe.

Processamento pós upload

Você pode visualizar informações de processamento pós-upload, incluindo metadados de objetos do Amazon S3 e notificações de eventos.

Metadados de objetos do Amazon S3

Como parte dos metadados do seu objeto, você vê uma chave chamada x-amz-meta-user-agent cujo valor é AWSTransfer e x-amz-meta-user-agent-id cujo valor é username@server-id. O username é o usuário do Transfer Family que fez o upload do arquivo e o server-id é o servidor usado para o upload. Essas informações podem ser acessadas usando a HeadObjectoperação no objeto S3 dentro da função Lambda.

A tela de metadados exibindo informações sobre metadados de objetos do Amazon S3 para. AWS Transfer Family

Notificações de eventos do Amazon S3

Quando um objeto é carregado em seu bucket do S3 usando Transfer Family, o RoleSessionName está contido no campo Solicitante na estrutura de notificação de eventos do S3 como [AWS:Role Unique Identifier]/username.sessionid@server-id. Por exemplo, a seguir está o conteúdo de um campo de exemplo de Solicitante de um log de acesso do S3 para um arquivo que foi copiado para o bucket do S3.

arn:aws:sts::AWS-Account-ID:assumed-role/IamRoleName/username.sessionid@server-id

No campo Solicitante acima, ele mostra o perfil do IAM chamado IamRoleName. Para obter mais informações sobre a configuração de notificações de eventos do S3, consulte Configurar notificações de eventos do Amazon S3 no Guia do desenvolvedor do Amazon Simple Storage Service. Para obter mais informações sobre identificadores exclusivos de funções AWS Identity and Access Management (IAM), consulte Identificadores exclusivos no Guia do AWS Identity and Access Management usuário.

Mensagens SFTP

Esta seção descreve as mensagens do lado do cliente que você pode receber durante ou após a transferência do arquivo SFTP ao usar um servidor Transfer Family. Para obter mais informações sobre qualquer evento SFTP, verifique os registros do cliente SFTP. Você pode usar essas informações para solucionar quaisquer erros ou encaminhá-las à sua equipe de rede para obter ajuda na identificação do problema.

Mensagens SFTP do lado do cliente
Atividade Description
FALHA DE AUTENTICAÇÃO O usuário falhou na autenticação. Isso pode ser qualquer tipo de falha de um provedor de identidade personalizado ou usuário gerenciado pelo serviço. Os detalhes do evento ajudam a esclarecer a causa raiz da falha.
CLOSE Indica que um arquivo ou diretório aberto foi fechado com sucesso.
CONECTADO/DESCONECTADO Indica sucesso e desconexões normais da conexão.
CRIAR_LINK SIMBÓLICO Um link simbólico foi criado (com sucesso ou sem sucesso).
DELETE Um arquivo foi excluído (com sucesso ou sem sucesso).
ERRO Um erro geral e inesperado. A descrição associada contém informações que podem ajudar você ou seus administradores de rede a identificar o problema específico.
RAZÃO_DE_SAÍDA Emitido quando um erro inesperado causou o encerramento da sua sessão de SFTP. A mensagem associada ao evento descreve a causa.
MKDIR Um diretório foi criado (com sucesso ou sem sucesso).
OPEN Um arquivo foi aberto para leitura ou gravação (com sucesso ou sem sucesso)
FECHAMENTO_PARCIAL O cliente se desconectou do servidor enquanto um arquivo ainda estava aberto, sem a mensagem CLOSE recebida. O Transfer Family armazena a parte recebida do arquivo (que na verdade pode ser o arquivo completo) e emite o evento PARTIAL_CLOSE para alertar o cliente sobre o problema. A integração de fluxos de trabalho também recebe um onPartialClose evento para tratar o arquivo de forma adequada.
RENAME Um arquivo foi renomeado (com sucesso ou sem sucesso)
RMDIR Um diretório foi excluído (com sucesso ou sem sucesso)
SETSTAT

Os atributos de um arquivo são alterados (com ou sem sucesso).

nota

O Transfer Family não oferece suporte ao SETSTAT se você estiver usando o Amazon S3 para armazenamento. A Evitar erros setstat seção fornece detalhes sobre como evitar SetStat erros, desativando a configuração. Isso evita que você receba umafail unsupported error: em vez disso, você recebe uma success but do nothing mensagem.

FALHA NO RESUMO DO TLS O servidor está configurado para impor a retomada da sessão TLS e o cliente não oferece suporte a ela.