見出し画像

PaperspaceとGoogledriveの連携について@rcloneを使用する話

PaperspaceとGoogledriveの連携についてを作成していませんでしたので(使っていなかったため)、その手順などについてやってみた感じの感想を記載しておきます。以下、参考になりそうなHPのリンクです。

Geminiはgoogleのサービスですので、rcloneやgoogle driveについては詳細に教えてくれます。

詰まったらGeminiに聞くのがベスト


<rcloneの導入の感想>

まずは最初に記載しておくべきことは

①設定はそこそこ手間


②だが、転送は爆速!(Paperspaceでのダウンロード比較)


ということです。個々のメリットデメリットに合わせて使用を考えるのが良いかと思います。

Paperspaceでzipファイルのダウンロードが何故遅いのか@結局はクラウドストレージ|shiba*2

速度に関しては、上の記事あった内容と基本的には同じ結果でした。

また、重要な点としては

Notebookで一度設定しても、ちゃんと対策しないとインスタンス立ち上げ時には再設定必要となる点

です。

この辺りを踏まえつつ、google driveとの連携をすると良いかと思います。

以下、手順を提示していきます。Geminiに聞いた内容をそのまま使用した感じです。特に対話式のやり取りのところは、記載内容とちょっと違う場合があります。でもなんとかなるというレベル

<前提>

①私が作成したコンテナイメージで行う場合(v4.0)
python 3.13のだとパッケージが足りないため、以下のインストールをしておく必要あり。他のだと必要ない。

!apt-get -qq update
# パッケージのインストール
!apt-get install -y -qq wget unzip vim nano iputils-ping sudo git-lfs jq rsync unrar htop awscli

②コマンドを実行する場所について
これは「対話形式」になるので、「セルコマンド」ではなく、「jupyterlab」か「terminal」で実行する必要があります。
どちらでもよいですが、視認性を考えると「jupyterlab」が良いかと。

セルコマンドだと以下のところで止まります。

セルコマンドだと書き込めないため

Terminalの場所

「terminal」は左側のボタンから選べるものです。上の「+」を押すと「Terminal 1」とか出てきます。
入力は下の方にあるログの部分です。ちょっと分かりにくい。

「jupyterlab」の場合


# 1. rcloneをインストール
curl https://rclone.org/install.sh | sudo bash

# 2. 対話形式でGoogle Driveと連携設定
rclone config


以下、Jupyterlabの画面です。
上のコマンドを順番に実行します

出てくるリストで、「Google Drive」が出てくる左側の数字を入力します。私が実行した場合は「22」でした。

手順① まずはターミナル上で入力すること

対話形式での設定
ターミナルに表示される質問に、以下のように順番に答えていってください。(>の後ろがあなたの入力です)

n) New remote
-> n と入力してEnter(新しい接続先=Google Driveを登録します)

name>
-> gdrive と入力してEnter(この接続に「gdrive」というニックネームを付けます。覚えやすければ何でもOKです)

Type of storage to configure.
-> drive と書かれた選択肢の 番号 を入力してEnter(たくさん選択肢がありますが、Google Drive を見つけてください)

client_id>
-> 何も入力せず Enter

client_secret>
-> 何も入力せず Enter

scope>
-> 1 と入力してEnter(rcloneに全てのファイルへのアクセスを許可します)

Edit advanced config?>
-> n と入力してEnter

service_account_file>
-> 何も入力せず Enter

Use web browser to automatically authenticate rclone with remote?
-> n と入力してEnter

Use auto config?
-> n と入力してEnter

ここまでが第一段階。この赤文字の部分が、そのインスタンスとやり取りするために重要なものになります。

次は、自分のPCでの設定となります。

以下のところで、自分のPCにRcloneをダウンロードします。

Rclone downloads

それを解凍します。ファイルを以下の部分まで開きます。

右クリックをして「ターミナル」などでコマンドプロンプトかPowershellを開きます。
以下のコマンドを実施するとブラウザが立ち上がります。

.\rclone authorize "drive" "赤い線を引いた部分の文字列"

そのままGoogleのブラウザが立ち上がって進めます。

この画面になれば成功!

すると、コマンドプロンプトのところに、以下の部分が出力されています。

これをコピーします。

最後、Paperspace側の処理

Enter verification code> と表示されているので、先ほどコピーした認証コードを貼り付けて Enterを押します。

Configure this as a team drive?
-> n と入力してEnter(個人用のDriveなので n でOKです)

y/e/d> Yes this is OK
-> y と入力してEnter(設定内容の確認です)

q) Quit config
-> q と入力してEnter(設定画面を終了します)

これで、このnotebookでgoogledriveの転送が可能になります。

この設定をnotebookディレクトリに保存して、再利用する事でnotebookを立ち上げた後に上の手続きをせずに使えるようになります。
以下のセルコマンドを実行します。

# 設定ファイルの保存場所を作成(念のため)
!mkdir -p /notebooks/rclone_backup/

# 設定ファイルをコピーしてバックアップ
!cp /root/.config/rclone/rclone.conf /notebooks/rclone_backup/

これでNotebookにコンフィグファイルが保存されます。

次回のインスタンスの立ち上げ後に以下のコマンドを実行すると、これまでの作業をスキップすることが出来るようになります。

# rcloneをインストールだけする
!curl https://rclone.org/install.sh | bash

# バックアップから設定ファイルを元の場所に戻す
!mkdir -p /root/.config/rclone/
!cp /notebooks/rclone_backup/rclone.conf /root/.config/rclone/

# 動作確認(gdriveという設定が見えれば成功)
!rclone listremotes


転送コマンド例は以下
/notebooks/outputs.zipのパスを保存したいものを指定します。
gdrive:backupで、Googledriveのbackupフォルダ内の転送されます。

!rclone copy -P /notebooks/outputs.zip gdrive:backup

こんな感じで転送されたファイルが見られ、ダウンロードできます。

500MBのファイルですが、転送自体は1分程度。その後ブラウザでダウンロード出来るので、それは個人の回線速度に依存しますが、おそらくはPaperspaceから直接ダウンロードするよりは早くなるかと思います。

<注意点>
この作業で作成し、notebookに保存した「clone.conf」はとても重要なので取り扱い注意です。
「clone.conf」はgoogle driveにアクセスする「認証トークン」が書かれているので、「家の鍵」のようなイメージで考えると良いです。
そのため、他のnotebookでも使用することが可能ですが、他人にわたるとgoogle driveにアクセスされることになります。

rcloneの認証を削除するのは以下のところにアクセスして削除するとできます。

https://myaccount.google.com/permissions


いいなと思ったら応援しよう!