TRANSFERÊNCIA DE ARQUIVOS NO PHP VIA SFTP / SSH

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