使用 Google Colab 將 G Suite 教育版帳號中的檔案轉移至其他 Google 帳號

分享:

因為 Google 已經不再讓 G Suite 教育版帳號有無限的空間,所以大家應該也都陸續需要把資料給搬到別的地方了。

我也有這樣的需求,但找了好多網路的文章的方法,都會因為權限問題無法一鍵轉移,又不想把檔案抓下來後再丟到另一個帳號,研究後找到了可以使用 Google Colab 的服務,直接寫程式就可以完成帳號的資料轉移喔。

Google Colab 提供的方式是轉換到另一個 google 的帳號,所以我們需要再要轉移的那個帳號來撰寫 Colab,可以先參照這篇在你要執行轉移的帳號上加上 Colab 的功能

Step 1:

先 import drive,瀏覽器會問你是否提供權限,允許後就能繼續了。

from google.colab import drive
drive.mount('/gdrive')

 

接著可以按下上面的 +程式碼的按鈕增加一段新的程式,在 colab 內你用 ! 開頭就能執行 linux 的指令,像是打上

!ls /gdrive/

就能列出指定的資料夾的內容。

在 codelab 打完程式後要按下 play 那個按鈕才會執行,如果是在 gdrive 執行就會看到這兩個資料夾:

MyDrive Shareddrives

一個就是「我的雲端硬碟」,另一個則是「共用雲端硬碟」。

 

Step 2:

接著到你要轉移的目標帳號,選擇一個你要轉移的資料夾後選擇共用,把這個資料夾共用給你要轉移的帳號:

 

 

Step 3:

到你要轉移的目標帳號,應該就能在與我共用那邊看到分享過來的資料夾了。

但因為這個資料夾是在「與我共用」的資料夾內,不是在我們上面 ls 看到的 MyDrive 或 Shareddrives 內,要轉移的話會沒辦法選擇資料夾,所以在這邊我們要再做一件事情,也就是把資料夾建立捷徑到上述兩個資料夾其中之一:

像我選擇在「我的雲端硬碟」建立捷徑,這樣我們就能在那個資料夾看到捷徑了:

這時如果輸入 ls 指令,應該就能看到 Delta 了:

!ls /gdrive/MyDrive/

 

Step 4:

接著要來輸入複製檔案的指令了,如果已經建立好捷徑,可以像這樣輸入以下的指令:

!cp -av '/gdrive/MyDrive/Sourse' '/gdrive/MyDrive/Target'

Sourse 替換成你要複製的目標路徑,Target 則是要搬移的目標路徑,如果是像我要搬移 Delta 資料夾的話,就是像這樣寫:

!cp -av '/gdrive/MyDrive/Delta' '/gdrive/MyDrive/Delta2'

按下 play 後就會開始搬移作業了。

只是注意要搬移的話不會馬上分享就能在 colab 看到所有的檔案,可以當檔案都已經分享過來後,利用 !ls 確認資料夾是否都以存在後再搬移就好。

參考:
GoogleDrive Migration

 

課程推薦

和我們交流

加入我們的社群,裡面會有一些技術的內容、有趣的技術梗,以及職缺的分享,歡迎和我們一起討論。