WinSCP - Como compactar, baixar e excluir um arquivo?

4

Como é possível compactar, baixar e excluir (ZDD) um arquivo no WinSCP?

Por exemplo, seu diretório local é Desktop e seu diretório remoto (o da máquina do servidor) é, digamos, /var/www/html e você deseja compactar e baixar um diretório ou arquivo específico e, em seguida, deseja que ele seja removido no momento em que o download foi concluído.

Para mais explicações, no linux eu poderia fazer, por exemplo:

(
zip -r /var/www/html/dr.zip /var/www/html
scp /var/www/html/dr.zip USER@IP:/location
rm /var/www/html/dr.zip
)

Eu preciso de algo semelhante para o WinSCP, mas estou ciente de que o mecanismo de download do WinSCP deve ser usado e que é diferente do utilitário Nix scp .

Minha pergunta:

Você conhece uma maneira de conseguir isso com o WinSCP?

    
por JohnDoea 17.04.2017 / 15:13

1 resposta

3

Não há como fazer o download de arquivos ZIP em nenhum protocolo de transferência de arquivos (SFTP, FTP, SCP ou WebDAV). É por isso que não existe essa função no WinSCP, pois não pode ser implementada de forma confiável.

No entanto, se você tiver um acesso shell ao servidor, poderá usar um comando shell para compactar os arquivos. Isso é, na verdade, o que o comando personalizado Tar / GZip faz.

Se você quiser em um só lugar (zip-e-download), você teria que implementar um comando personalizado complexo / extensão, que abre sua própria sessão para o download . Seria muito parecido com o pacote de arquivos para o arquivo ZIP e enviá-lo exemplo. Exceto, que usaria Session.ExecuteCommand para executar zip (ou similar) no servidor remoto.

Você pode escrever a extensão em qualquer idioma que desejar. O PowerShell é apenas a linguagem de script do Windows mais prontamente disponível com um bom suporte .NET (nativo). Embora seja possível no Bash também, você precisa usar um script Bash local (não é possível fazer o download de um arquivo usando um script Bash remoto). E não há Bash no Windows por padrão.

    
por 18.04.2017 / 08:15