Como o sftp substitui arquivos?

1

Por exemplo, eu tenho algum servidor estático http. Estou trabalhando com arquivos .js via sftp. Mantendo-os sincronizados. Eu estou querendo saber se o arquivo .js é substituído instantaneamente ou se o servidor stfp irá gravar no arquivo como um fluxo?

Então, por exemplo:

  • o cliente começou a enviar o arquivo
  • fluxo de leitura aberto
  • servidor aceita essa solicitação
  • abra o fluxo de gravação no local do arquivo
  • chunks enviando para o servidor
  • pedaços aceitos e canalizados para o fluxo de gravação
  • link
  • os erros result = js na página da web

ou

  • sftp carrega o arquivo inteiro na memória
  • , em seguida, despejar o arquivo inteiro da memória no arquivo

Este é o melhor cenário para mim.

Não tenho tempo para verificar como está funcionando. Qualquer explicação seria boa.

    
por Somebody 27.01.2013 / 11:21

2 respostas

3

scp e sftp substituirão o arquivo no local, portanto, teoricamente, um cliente HTTP poderia tentar buscar um arquivo parcialmente carregado.

Você pode atenuar isso usando rsync sobre SSH em vez de sftp , pois isso gravará primeiro em um arquivo temporário e, em seguida, substituirá o arquivo. rsync também pode ser configurado para fazer backup de todos os arquivos que ele substitui.

    
por 27.01.2013 / 13:17
3

Não é um recurso de protocolo. SFTP (como um subprotocolo / subsistema de SSH) não decide se deseja substituir seus arquivos in-loco ou através de um arquivo temporário, o servidor somente executa os comandos que são enviados pelo cliente. Portanto, todo esse assunto deve ser visto de uma perspectiva do cliente.

Agora, dito isto, e mantendo o acima em mente, dependendo do cliente que você escolher para enviar seus arquivos .js, você terá um comportamento diferente:

  • O sftp simplesmente carrega e sobrescreve seus arquivos no local
  • rsync por SSH pode fazer upload de arquivos com nomes temporários e, em seguida, excluir o arquivo antigo e renomear o novo (a melhor opção)
  • No mundo do Windows, há uma infinidade de clientes SFTP que podem fazer upload usando nomes temporários e excluir / substituir, provavelmente o mais comum e conhecido deles é WinSCP
por 16.10.2014 / 00:53

Tags