rclone을 사용하여 vifm에 Google 드라이브를 마운트할 수 있습니까?

rclone을 사용하여 vifm에 Google 드라이브를 마운트할 수 있습니까?

을 사용하여 Google 드라이브를 마운트할 수 있습니다 rclone mount gdrive: localfolder. 또한 sshfs내 에서 원격 파일 시스템을 자동으로 마운트하는 방법도 알고 있습니다 vifm. 하지만 자동 rclone으로 클라우드 드라이브를 마운트하는 데 사용할 수 있습니까 vifm? 다음 줄을 추가하려고했습니다 vifmrc.

filetype *.drive FUSE_MOUNT2|rclone %PARAM %DESTINATION_DIR

google.drive다음 줄이 포함된 파일을 만듭니다 .

mount gdrive:

파일을 열려고 하면 google.drivevifm이 마운트를 시도한다는 메시지를 표시한 다음 영원히 멈춥니다.

좀 더 일반적으로 말하자면 vifm에 모든 종류의 원격 마운트 프로그램을 처리하는 일반적인 방법이 있습니까?

답변1

비슷한 문제가 있는데 답이 없는 질문을 우연히 발견했습니다. 내 해결책은 다음과 같습니다.

기본적으로 명령은 rclone mount원격이 마운트되는 동안 포그라운드에서 실행 상태를 유지하여 다양한 메시지를 stdout에 인쇄합니다. 이는 sshfs포그라운드에서 자격 증명을 요청하고 완료하는 것과는 다릅니다 . vifm마운팅 프로세스를 완료하고 새로운 사용자 입력을 수락 하려면 rclone mount어떻게든 데몬화해야 합니다. 플래그를 통해 수행될 수도 있지만 이 경우 방금 생성한 폴더로 이동하여 마운트 프로세스가 완료되기 전에 해당 내용을 표시하는 --daemon것으로 나타났습니다 . vifm따라서 빈 폴더처럼 보이는 것을 얻게 됩니다. 여러 번 누르면 CTRL-L파일 목록이 새로 고쳐지고 적절한 내용이 표시됩니다. 그러나 조금 짜증이납니다.

rclone mount또 다른 가능한 접근 방식은 마운팅 프로세스가 완료될 때까지 데몬화하고 기다리는 래퍼 스크립트를 작성하는 것입니다 . 예를 들어 를 사용 inotifywait하거나 를 사용하여 대기를 수행할 수 있습니다 sleep.

래퍼 스크립트는 다음과 같습니다.

#!/usr/bin/env bash

dest=$1; shift
nohup rclone mount $* "$dest" &> /tmp/rclone_gdrive.log &
inotifywait -me open "$(dirname "$dest")" | while read line; do
    echo "$line" | grep -q "$(basename "$dest")" && break
done
# or sleep 1

(충분히 테스트하지 않았으므로 주의하세요.) vifmrc다음을 입력할 수 있습니다.

" Rclone mount
filetype *.drive
       \ {Mount google drive with rclone}
       \ FUSE_MOUNT2|<your wrapper script name> %DESTINATION_DIR %PARAM

제공된 래퍼 스크립트가 기대하는 것이기 때문에 (질문의 예와는 달리) 여기 %DESTINATION_DIR앞에 옵니다 .%PARAMS

안타깝게도 귀하의 질문 중 보다 일반적인 부분에 대한 답변을 모르겠습니다.

관련 정보