หลายคนคงต้องการหาวิธีนี้ เทคนิคสร้าง Colab และ Python เขียนคำสั่ง Batch Copy ไฟล์จาก Share Drive มายัง Drive ส่วนตัวของเรา
ปัญหาหนึ่งคือ เรามี Sharedrive แล้วบังเอิญเราถูกจำกัดสิทธิในการ Share ออกไปให้คนอื่นหรือข้างนอกเป็นได้แค่ Viewer ซึ่งถ้าให้ดาวน์โหลดด้วยวิธีนี้ก็ดูจะถึกแลดูเหนื่อยเกินมนุษย์แม้ว่ามันจะแม่นยำที่สุด
ใช้เวลาค้นหาวิธียาวนานจากหลายๆ กลุ่มสุดท้ายก็ได้วิธีนี้มา ให้เราสร้าง Short Cut ของ Folder บน Share Drive ที่เราต้องการจะดาวน์โหลดแบบ Batch ครับในตัวอย่างตั้งชื่อ Shortcut ว่า “TH”
คลิกขวาเลือก “Add shortcut to Drive” แล้วเลือกไปที่ My Drive ครับ จะมี Folder ของ Shortcut ปรากฏขึ้นแบบภาพข้างล่าง:
สร้าง Folder ใหม่ขึ้นมาสำหรับ Patse ทุกสิ่งที่จะ Copy ไป ในตัวอย่างตั้งชื่อว่า “THX” สำหรับวางไฟล์ที่เราจะทำการ Batch Copy
สร้าง Notebook ใหม่บน Colab ตั้งชื่ออะไรก็ได้ ตัวอย่างผมสร้างดังนี้:
*หมายเหตุ: เอาไปใช้ได้เลยนะแค่เปลี่ยนชื่อ Folder เล็กน้อยตรง “TH” และ “THX” Clone ได้เลยจาก link นี้:
https://colab.research.google.com/drive/1FsCZSu-jlkAGn05BnE_eD0JZysnsOdmi?usp=sharing
เอาล่ะ ใส่คำสั่งต่อไปนี้ ให้เรา Mount Google drive ของเราก่อน:
from google.colab import drive drive.mount('/gdrive')
ทำการ Run หลังจากนั้นเราต้องเอา Authen Key จาก Google Drive เราด้วย:
%cd /gdrive/MyDrive/TH
มันจะให้เราเปิดไปเอา Authen Key มากรอก
ให้ Copy แล้วเอาไปกรอกซะ มันจะได้ค่า UID ของ Folder มาตามนี้:
/gdrive/.shortcut-targets-by-id/<<รหัส UID>>/TH
ต่อมาให้ ทำการ Copy ทุกไฟล์ใน TH ไปยัง THX โดยใช้คำสั่ง
!cp -r '/gdrive/.shortcut-targets-by-id/<<รหัส UID>>/TH/.' '/gdrive/My Drive/THX'
รอมันประมวลผลครับ จะได้ดังนี้:
ไปดูที่ Folder ปลายทางระหว่างที่มัน Copy (ซึ่งจะนานหน่อย) จะเห็นไฟล์มาแล้ว!
มันกำลัง ทยอย Copy ไปยัง Folder “THX” ครับ ก็ตั้ง Batch ให้มันเตือนเวลาที่ Copy เสร็จเอาละกัน ส่วนไฟล์ของ Code ใน Colab ก็ตามนี้ครับ
from google.colab import drive drive.mount('/gdrive') %cd /gdrive/MyDrive/TH !cp -r '/gdrive/.shortcut-targets-by-id/<<UID>>/TH/.' '/gdrive/My Drive/THX'
หวังว่าจะได้ประโยชน์กันนะครับ