문제

나는보고 있었다 드롭 박스 Mac Client와 현재 다른 서비스에 대한 유사한 인터페이스 구현을 연구하고 있습니다.

그들은 이와 같은 Finder와 정확히 어떻게 인터페이스합니까? 폴더에 표시되는 이러한 객체가 모든 부하에서 다운로드 된 실제 문서라는 것을 의심스럽게 생각합니다. 필요에 따라 동적으로 다운로드해야합니다. 그렇다면 실제 파일 시스템 객체가 없으면 이러한 항목을 Finder에 어떻게 표시 할 수 있습니까?

Mac OS X에서 이것이 어떻게 달성되는지 아는 사람이 있습니까?

또는 Finder와 유사한 통합을 가진 Apple API 또는 기타 오픈 소스 프로젝트에 대한 포인터가 있습니까?

도움이 되었습니까?

해결책

두 가지 제안 :

전자는 파일 시스템으로 나타나고 모든 올바른 일을하는 앱을 작성할 수 있습니다. 후자는 모든 서버 쪽을 이동하고 사용자가 파일 공유로 서비스를 마운트 할 수있게 해줍니다.

다른 팁

Dropbox는 MacFuse 또는 Webdav에 의해 구동되지 않지만, 이들은 달성하려는 일에 완벽하게 좋은 솔루션 일 수 있습니다.

그것이 그러한 것들에 의해 구동된다면, 당신이 연결되지 않았을 때는 작동하지 않을 것입니다. 두 사람 모두 서버에 의존하여 실제 정보를 저장하고 Dropbox는 그렇지 않기 때문입니다. Dropbox (메뉴 항목을 통해 완료)를 종료하고 그물에서 분리해도 파일을 사용할 수 있습니다. 파일이 실제로 내 하드 드라이브에 저장되어 있기 때문입니다.

또한 파일은 실제로 내 컴퓨터에 저장되므로 파일을 "모든로드마다 다운로드"할 필요는 없음을 의미합니다. 대신, 델타만이 와이어로 전송되고 Dropbox 응용 프로그램 (백그라운드에서 실행)은 파일을 적절하게 패치합니다. 다른 방법으로, Dropbox 응용 프로그램은 Dropbox 폴더의 파일을보고 변경하면 적절한 델타를 서버로 보내어 다른 클라이언트로 전파합니다.

이 설정에는 몇 가지 결정된 장점이 있습니다. 오프라인시 작동하며, 더 빠르며, 더 빠르며, 디스크에 파일 만 볼 수 있기 때문에 다른 앱에 투명합니다. 그러나, 합병 충돌을 어떻게 다루는 지 (하나 이상의 클라이언트에서 쉽게 발생할 수 있음) 어떻게 오프라인으로 발생할 수 있는지 전혀 모른다. 이는 서버가 유일한 사본 인 경우 문제가되지 않는 모든 편집이 중앙 사본을 변경하는 경우 문제가되지 않는다.

Dropbox가 실제로 빛나는 곳은 Dropbox 폴더의 항목을 현재 동기화 상태로 배지하는 추가 트릭이 있다는 것입니다. 그러나 그것은 당신이 여기서 묻는 것이 아닙니다.

당면한 질문에 관한 한, MacFuse와 Webdav를 분명히 조사해야합니다. 이는 문제에 대한 완벽한 솔루션 일 수 있습니다. 그러나 배경 응용 프로그램이 디스크의 실제 파일을 변경하는 Dropbox 방법은 더 나은 트레이드 오프 일 수 있습니다.

Dropbox가 사용 중일 가능성이 높습니다 fsevents 파일 시스템의 변경 사항을 확인합니다. 그것은 훌륭한 API이며 앱이 실행되지 않은 동안 발생한 변경 사항을 묶을 수도 있습니다. 스포트라이트가 사용하는 것과 동일한 API입니다. Menubar 앱은 실제 관찰 자체를 수행 할 가능성이 높습니다 (예 : 재시작하면 업로드가 해결 될 수 있기 때문에).

Dropbox가 작동하기 위해 MacFuse 커널 확장을 설치해야하기 때문에 MacFuse를 사용하는 방법은 없습니다. 확실히 설치하지 않았기 때문에 그들이 사용하고있는 것이 의심 스럽다.

클라이언트의 Dropbox는 Python으로 작성되었습니다. 클라이언트는 SQLITE3 데이터베이스를 사용하여 파일을 인덱싱하는 것으로 보입니다. DropoBox가 덩어리로 파일을 분할하여 사용량을 줄이려고합니다. 그건 그렇고, 두 사람이 동일한 파일을 가지고 있습니다. 서로를 모르더라도 서버는 파일을 더 이상 전송하고 서버 측에서만 복사하는 것을 피할 수 있습니다.

나에게 그것은 수정 된 개정 제어 시스템처럼 느껴집니다. 모든 기능이 있습니다 : 델타를 기반으로 파일을 업데이트, 기존 파일 수정을 복구하거나 복원하는 옵션. 그들이 git을 사용하는 것처럼 느껴집니다 (gitfs?) 또는 일부 파일 시스템.

당신은 또한 줄 수 있습니다 파일 컨베이어 시도. FS 변경을 즉시 감지 할 수있는 파이썬 데몬입니다 (Linux에서 inotify, OS X를 통해 FSEvents), 파일 처리 그리고 그것들을 하나 이상의 목적지로 동기화합니다.

지원되는 프로토콜 : FTP, SFTP, Amazon S3 (CloudFront도 지원), Rackspace Cloud 파일. 쉽게 확장 할 수 있습니다. 용도 django-storages.

"파일 처리": 예를 들어 이미지 최적화, 비디오 트랜스 코딩 - 원래 웹 사이트 속도를 높이는 맥락에서 정적 자산을 CDN으로 전송하는 데 사용되는 것으로 생각되었습니다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top