Đối với các Uploader thì Google Drive đang là một trong các nơi lưu trữ tốt nhất vì tốc độ cao, cũng như vô vàn cách “lách luật” kiếm Google Drive Unlimited để có thể upload không giới hạn, tuy nhiên đa phần Uploader phải sử dụng tới VPS với các công cụ như Air Explorer hoặc sử dụng Multi-Cloud, mặc dù hữu ích tuy nhiên thường có một số hạn chế: băng thông (vụ này thường bị chạc tiền kinh nhất nếu sử dụng VPS của nước ngoài), thường xuyên miss một số files khi path dài hoặc có nhiều files nhỏ…
Hôm nay mình sẽ bắt đầu Series về cách tip & trick với Google Drive để có thể tận dụng tối đa “thằng em nó” và ít băng thông nhất. Công cụ mà chúng ta sử dụng ngày hôm nay là 1 project có tên Folderclone (https://github.com/Spazzlo/folderclone)
Nội dung bài viết
Chuẩn bị
- Trước khi tiến hành, hãy đảm bảo bạn có tài khoản Google Drive Unlimited hoặc Team Drive (nếu bạn chưa có, hãy liên hệ cho mình 😀 ) vì với dung lượng mặc định 15GB Free của Google thì oải lắm (trừ khi các bạn mua thêm ở gói Google One), mình khuyến nghị các bạn nên tạo Drive Team để sử dụng vì các tools trong Series mình viết này đa số chạy ổn định trên Drive Team
- Một máy ảo chạy Linux (hoặc Windows), các bạn có thể sử dụng chính máy tính của mình để chạy, nhưng khuyến tạo 1 máy ảo (hoặc VPS) riêng để treo cho ổn định và không bị “click-nhầm” trong quá trình làm việc (mặc dù quá trình clone khá nhanh, chỉ phụ thuộc vào số lượng files của bạn có nhiều hay không thôi)
- Bài này sẽ gồm cả cách sử dụng cho Windows và Linux, bước cài đặt có vẻ hơi khác nhau, còn các bước tiếp theo đa phần giống nhau nên các bạn cứ làm theo nha !!!
Đối với Linux (Debian/Ubuntu/Centos)
-
Đối với các distro chạy Debian các bạn chạy các lệnh sau
apt update apt install python3-pip git -y git clone https://github.com/Spazzlo/folderclone.git cd folderclone pip3 install folderclone
-
Đối với Centos
yum update -y yum install python3 python3-pip git -y git clone https://github.com/Spazzlo/folderclone.git cd folderclone pip3 install folderclone
Đối với Windows
- Cài đặt Python3 mới nhất (hiện tại là 3.8.2) tại đây, nhớ tick vào “add path” trong quá trình sử dụng
- Download source folderclone tại đây và giải nén ra, nhớ lấy đường dẫn, ví dụ: của mình là:
C:\Users\mrhack\Desktop\folderclone-master như hình dưới
- Mở CMD dưới quyền administrator và trỏ tới đường dẫn vừa giải nén
- Chạy lệnh sau
-
pip install folderclone
Tiến Hành
- Tạo Team Drive nếu bạn chưa có: truy cập https://driveteam.nguyenvanlong.blog/ nhập email của bạn và tên Drive Team muốn tạo, sau đó submit
- Truy cập vào đây và chọn như ảnh
- Copy file credentials.json vào folder “folderclone-master” ở trên
-
Gõ tiếp lệnh sau vào CMD (đã mở ở trên)
- Trình duyệt sẽ tự động mở, đăng nhập vào tài khoản của bạn
- Cấp đủ quyền cho ứng dụng
- Sẽ có lỗi xuất hiện báo bận chưa bật Service API, mặc định chương trình sẽ tự mở 1 tab tới project và bạn chỉ việc bấm Active là xem, nếu tab không mở, hãy copy link hiển thị như dưới:
- Sau đó nếu bạn làm đúng CMD (hoặc Terminal sẽ hiển thị dạng)
Tạo Service Account
- Phần này mình sẽ giải thích một chút, có thể các bạn biết hoặc chưa, folderclone sử dụng API để copy, clone các files trên Google Drive, để làm được việc đó cần phải tạo 1 Service Account (SA) cho nó, mà mỗi SA sẽ có giới hạn là 750G/24h, vậy để có thể clone một số lượng lớn files: giả dụ mình có 100TB cần clone mỗi ngày thì ta cần: 100*1024/750= 137 SA (136.5 nhưng đã vượt mức 136 nên tính lên 137). OK đơn giản, mà phải không 😀
- Vậy làm sao để tạo SA ? à thì đơn giản thôi vào console của Google rồi tạo bằng…tay LOL 😂😂, đó là cách trâu bò ngày trước, bây giờ thì mọi thứ đã có tools 🙂 “just-click” là bạn sẽ tạo được 100 SA.
– Ơ ? sao lại 100 SA, mình cần 137 (hoặc hơn) cơ mà ?
– À thì Google giới hạn chỉ tạo tối đa 100 SA/Project thôi, đó mấu chốt ở đó 😀 bạn chỉ cần tạo thêm Project là tạo được thêm SA, mỗi Project là 100 SA 😀 -
Tiếp tục nha, để tạo SA các bạn chạy lệnh sau ở CMD hoặc Terminal:
quick-setup <số lượng Project> <SHARE_DRIVE_ID>
- Trong đó:
-Số lượng Project bạn muốn tạo để tạo SA
– SHARE_DRIVE_ID là ID của Folder gốc sẽ chứa dữ liệu clone về ở Drive hoặc ID của Drive Team (khuyến nghị dùng Drive Team)
- Trong đó:
- Ví dụ mình muốn có 200 SA => tạo 2 Project. Team Drive của mình có ID như hình
-
Ta sẽ chạy lệnh:
quick-setup 2 0AB52uFSDYDAPUk9PVA
- Vào lại Drive Team để check, nếu số lượng Users tăng lên thì đã thành công (mình trước đó đã add 1 lần nên số lượng SA thêm vào lên tới gần 400, nếu làm lần đầu sẽ chỉ là 200)
- Vậy nếu không muốn sử dụng Team Drive mà clone trực tiếp về Drive của mình có được không ? Được, nhưng bạn phải add bằng tay 200 email của SA đã tạo ở trên ở Folder ở Drive bạn muốn clone về, hiểu một cách đơn giản là gắn quyền cho đống SA có quyền truy cập (có truy cập thì mới clone được chứ). Hoặc một cách đơn giản nhất vẫn là sử dụng Drive Team và Move sang Drive chính
TIP: Sử dụng Google Group để add SA vào sau đó add email của group vào Drive (hoặc Team Drive) để dễ dàng quản lý hơn
Tiến Hành Copy
-
Vậy làm sao để clone ? Đơn giản, sau khi thực hiện xong tất cả các bước trên muốn clone các bạn đơn giản mở CMD hoặc terminal lên và gõ:
multifolderclone -s <SOURCE_FOLDER_ID> -d <DESTINATION_FOLDER_ID>
Trong đó: Source là ID của Folder (Files) cần copy còn Destination là ID của Folder trong Team Drive hoặc Drive mà bạn đã gắn quyền.
- Ví dụ: mình muốn clone URL https://drive.google.com/drive/folders/1Y6bKJo6SFPIZJ6rCVe9v4-boAz-8b_0_ này về Drive Team của mình (phần màu đỏ là ID), trên Drive Team (hoặc Drive như đã nói ở trên) mình tạo 1 Folder (bắt buộc đổi với Drive, bạn không thể clone về thư mục gốc ) như ảnh dưới, và lấy Destination ID ở đây
Vậy lệnh ta cần chạy là:multifolderclone -s 1Y6bKJo6SFPIZJ6rCVe9v4-boAz-8b_0_ -d 13ocveO0gCp0BH61t75JJkD8tcReX_RyA
Kết quả:
Time: chưa tới 1 phút !!
Các lần tiếp theo các bạn chỉ cần chạy lệnh copy ở bước cuối, không cần setup dài dòng !!
Chút các bạn thành công ! Video sẽ update sau !!
Credit: https://github.com/Spazzlo/folderclone