因為 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 確認資料夾是否都以存在後再搬移就好。