“델타 업로드”를 허용하는 FTP 또는 FTP와 같은 클라이언트가 있습니까? 즉, 변경된 파일의 일부만 업로드합니까?


9

FTP ( 웹 개발 용 CSS 파일)를 통해 상당히 큰 텍스트 파일을 자주 변경하고 인터넷 연결이 매우 느리기 때문에 매우 힘든 과정입니다.

파일의 한 문자 만 변경하더라도 전체 파일이 서버에 다시 업로드되는 동안 여전히 앉아서 기다려야합니다.

로컬 컴퓨터에서 원격 호스팅 파일을 편집 할 수있는 방법이 있습니까? 파일을 저장할 때 변경된 파일의 일부만 업로드 합니까?

편집 : 나는 현재 FTP 클라이언트를 어떻게 사용하고 있는지 잘 모르겠습니다. 기본적으로 WinSCP를 사용하여 SFTP를 통해 원격 파일을 엽니 다. WinSCP는 이것을 tmp 폴더에 저장하고 Sublime Text를 시작하고 편집을 시작합니다. 저장을 누르면 WinSCP가 파일을 자동으로 다시 업로드합니다. 나는 실제로 컴퓨터에 파일을 영구적으로 저장하지 않습니다. 모든 것이 WinSCP의 temp 폴더를 통해 이루어집니다. 그렇기 때문에이 "히트 앤 런"방식으로 사용할 수있는 솔루션을 찾고 있습니다.


이전 토론

이전 에이 질문을 ServerFault게시 했지만 git과 같은 것을 사용하는 것이 좋습니다.

자식 또는 유사한 버전 관리 도구를 사용하면 파일을 저장할 때마다 커밋해야합니다. 자동으로 수행 할 수 있더라도 (즉, Sublime Text 저장 파일에서 Ctrl-S를 작성하고 동시에 git push를 실행하는 매크로가있는 경우) 시간당 CSS 파일을 50 ~ 100 작은 편집 할 수 있습니다. 확실히 스팸 아웃 커밋 로그로 끝날까요? 또한 git 솔루션은 git repo의 일부인 편집중인 파일에 의존하므로 융통성이 없습니다.

내가 지금까지 생각할 수있는 유일한 해결책은 rsync를 사용하는 일종의 해킹 프로세스이지만 매우 까다로운 방법입니다.

  1. FTP / rsync / 무엇을 통해 컴퓨터에 필요한 파일을 다운로드합니다.
  2. Sublime Text에서 파일을 열고 편집을 시작합니다.
  3. 백그라운드 프로세스가 파일 수정을 위해 폴더를 모니터링하고 있습니다. 파일을 저장하면 해당 프로세스가 컴퓨터에서 서버로의 rsync 작업을 즉시 트리거하여 파일의 변경된 부분을 전송합니다.

그러나 원격 파일 또는 디렉토리 경로를 수동으로 설정하거나 지정해야합니다. 그렇지 않으면 로컬 rsync 스크립트가 파일을 rsync 할 위치를 알지 못 하므로이 방법은 여전히 ​​융통성이 없습니다. 이 방법을 사용하면 임의의 파일을 즉시 찾아보고 FTP 클라이언트처럼 저장하고 저장할 수 없습니다.

이 방법의 업로드 진행률 표시 줄과 같은 시각적 피드백도 없습니다.


7
git을 사용하는 것이 정답입니다. 당신이 찾고있는 것은 나쁜 연습을위한 해결 방법입니다. 당신이 뭔가 잘못하고 일을 중단하면 어떻게됩니까? 힘내 당신에게 롤백을 제공합니다.
TRiG

동의하지 않습니다. 리포지토리에 포함되지 않은 큰 텍스트 파일의 한 줄만 바꾸려면 어떻게해야합니까? 조직에서 자식을 허용하거나 지원하지 않으면 어떻게됩니까? 필자의 유스 케이스는 원격으로 호스팅되고 "실시간"및 "제자리"에서 편집해야하는 파일을 수백 건 정도 변경하는 것입니다.
WackGet at

지금 큰 파일을 테스트 할 시간이 없으므로 답변이 아닌 주석으로 게시하지만 Beyond Compare를 살펴보십시오 .FTP / SFTP를 통해 편집 할 수있는 크로스 플랫폼 GUI diff 파일이므로 동기화 할 회선을 선택하십시오. 아마도 여전히 이상적이지는 않지만 실행 가능합니다. 그들은 무료 평가판도 있습니다.
Nick

답변:


7

Vim에는 netrw라는 플러그인이 내장되어있어 Vim이 원격 파일을 편집 할 수 있습니다. Rsync는 사용할 수있는 프로토콜 중 하나입니다.

:e rsync://user@hostname:port/path
:w rsync://user@hostname:port/path

물론 원격 시스템에 대한 SSH 액세스 권한이 있고 Vim이 설치된 경우 Vim을 원격으로 사용하는 것이 더 간단 할 수 있습니다. 명령 줄 인터페이스가있는 Nano, Emacs 및 기타 편집기도이 옵션입니다. 그러나 연결 상태가 얼마나 나쁜지에 따라 이것은 즐거운 옵션이 아닐 수 있습니다.


그게 다야

원격으로 호스팅되고 "실시간"및 "제자리"에서 편집해야하는 파일에 수백 가지의 작은 변경 작업

git이 제공 할 수있는 것과 같은 신뢰할 수있는 롤백 시스템이 없으면 당신과 당신의 조직은 피할 수없는 실수를 할 때 고뇌를 구하고 있습니다.


서버에서 Linux 버전을 실행중인 경우 SSH가 확실한 해답 인 것 같습니다. 서버에서 아직 실행되고 있지 않은 경우 서버 관리자를 눌러 설정합니다.
Charles Burge

둘 다 감사합니다. 전체 SSH 액세스 권한이 있으며 서버에서 필요한 것을 구성 할 수 있습니다. 대기 시간이 종종 매우 높기 때문에 Vim을 원격으로 사용할 수 없습니다. 또한 Sublime과 같은 데스크탑 편집기를 사용할 수 있기를 원합니다. FTP 클라이언트를 현재 어떻게 사용하고 있는지 잘 모르겠습니다. 기본적으로 WinSCP를 사용하여 원격 파일을 열고 편집을 시작한 후 저장을 누르면 WinSCP가 파일을 자동으로 다시 업로드합니다. 실제로 컴퓨터의 영구 디렉토리에 다운로드하지는 않습니다. 모든 것이 WinSCP의 temp 폴더를 통해 수행됩니다. 질문을 수정하고 명확히하겠습니다.
WackGet at

@WackGet Vim은 데스크탑에서도 작동하며 GVim이라고합니다. 크림 은 Vim의 특정 구성으로 Sublime, Notepad 또는 Textmate와 같은 편집자에게 더 익숙한 사람들에게는 비교적 쉽습니다. WinSCP로 수행하는 작업은 기본적으로 netrw의 작동 방식입니다. 임시 위치로 다운로드하고 저장을 기다린 다음 지정한 프로토콜을 사용하여 원격 서버에 다시 씁니다.
8bittree

@ 8bittree 감사합니다, 이것은 확실히 유용 할 것입니다. Vim 기반 플러그인 사용으로 제한하기 때문에이 질문을 원래 질문에 대한 답변으로 표시하지 않습니다. 누군가가 FTP 또는 FTP와 같은 클라이언트로 netrw와 같은 델타 전송을 구현할 수 있다면 완벽 할 것입니다. 현재 나는 이것을 아직 찾지 못했지만 그것이 존재하기를 바랍니다.
WackGet at

1

Beyond Compare 는 폴더와 파일을 비교하고 병합 할 수있는 diff 도구입니다. FTP 서버도 지원되며 로컬 폴더처럼 처리 할 수 ​​있습니다. 하나의 설치에 대한 평생 라이센스는 표준 버전 (FTP 포함)의 경우 30 USD 또는 전문가 용 버전 (SFTP 포함)의 경우 60 USD입니다. Windows, Mac OS 및 Linux에서 실행됩니다. 개인적으로 나는 집 컴퓨터에서 웹 사이트를 개발하고 행복 할 때 변경 사항을 웹 서버에 업로드합니다. Beyond Compare을 사용하여 변경 사항을 직접 수행하지만 자동화 할 수도 있습니다. 시도해 볼 수 있고 완전한 파일 또는 변경 사항 만 업로드하는지 확인할 수 있습니다. 확실하지 않습니다.


비교 이외에도 훌륭합니다. SSH 액세스 권한이없는 경우에도 완벽하지만 파일이 원격 서버에서 동기화되어 있는지 확인해야합니다 (SSL을 통한 FTP 지원)
Sam Heuck
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.