rclone を使用して vifm に Google ドライブをマウントすることは可能ですか?

rclone を使用して vifm に Google ドライブをマウントすることは可能ですか?

を使って Google ドライブをマウントできます。 を使ってrclone mount gdrive: localfolderリモート ファイル システムを自動的にマウントする方法も知っています。しかし、 を使ってクラウド ドライブを自動的にマウントすることは可能ですか? に次の行を追加しようとしました:sshfsvifmrclonevifmvifmrc

filetype *.drive FUSE_MOUNT2|rclone %PARAM %DESTINATION_DIR

google.drive次の行を含む名前のファイルを作成します。

mount gdrive:

ファイルを開こうとするとgoogle.drive、vifm はマウントしようとしているというメッセージを表示し、そこで永久にハングします。

もっと一般的に言えば、vifm にはあらゆる種類のリモートマウント プログラムを処理するための一般的な方法がありますか?

答え1

私も同様の問題を抱えており、この未回答の質問に偶然出会いました。これが私の解決策です。

デフォルトでは、コマンドはrclone mountリモートがマウントされている間フォアグラウンドで実行され、さまざまなメッセージを標準出力に出力します。これは、たとえば、フォアグラウンドで資格情報を要求して終了する とは異なります。 がマウント プロセスを終了し、新しいユーザー入力を受け入れるsshfsためには、何らかの方法で をデーモン化する必要があります。これはフラグを介して実行できますが、この場合、 はマウント プロセスが完了する前に、作成したばかりのフォルダーにジャンプしてその内容を表示します。そのため、空のフォルダーのように見えるものが表示されます。 を押すと(数回かもしれません)、ファイル リストが更新され、適切な内容が表示されます。ただし、少しイライラします。vifmrclone mount--daemonvifmCTRL-L

もう 1 つの方法は、デーモン化してマウント プロセスが完了するまで待機するラッパー スクリプトを作成することです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(質問の例とは異なります)。

残念ながら、あなたの質問のより一般的な部分についての答えはわかりません。

関連情報