TRANSFERÊNCIA DE ARQUIVOS NO PHP VIA SFTP / SSH
Em um dado momento no desenvolvimento de um sistema, foi preciso criar uma função para transferir arquivo de um servidor para outro, sendo que o servidor só dava suporte a transferência de arquivos via SSH. Foi então que desenvolvi esta função que funcionou perfeitamente.
///////////ENVIO VIA SSH////////
$serverHost = seusite.com.br;
$serverUser = 'seuLoginSFTP';
$serverPass = 'senhaDoLoginSFTP';
$diretorioLocal = 'arquivoTemporario/meuArquivo.txt'
$diretorioRemoto = 'var/www/diretorioDestinoServidorExterno/meuArquivo.txt';
/* Faz a conexão com o servidor remoto */
if (!$ssh = @ssh2_connect($serverHost, 22)) {
SingletonPDO :: rollbackTrans();
$xml .= "<erro>ERRO AO ABRIR CONEXÃO SSH COM SERVER $servidor!</erro>";
die("$xml\n");
}
/* Faz a autenticação no servidor remoto */
if (!@ssh2_auth_password($ssh, $serverUser, $serverPass)) {
SingletonPDO :: rollbackTrans();
$xml .= "<erro>ERRO AO TENTAR AUTENTICAR O USUARIO SSH AO SERVER $serverHost!</erro>";
die("$xml\n");
}
/**
* Copia o arquivo do servidor local para o servidor remoto.
* As permissões são opcionais
*/
if (!@ssh2_scp_send($ssh, $diretorioLocal, $diretorioRemoto, 0644)) {
SingletonPDO :: rollbackTrans();
$xml .= "<erro>ERRO AO ENVIAR ARQUIVO VIA SSH AO SERVIDOR $servidor! - $diretorioLocal - $diretorioRemoto</erro>";
die("$xml\n");
}
///////////////////////////////////////
0 comentários:
Postar um comentário