Chuyển tới nội dung chính
Admin

Admin

Hunter

Câu Chuyện "Chuyển Nhà" Trên Google Drive: Series Bình dân Ứng dụng AI vào Google Drive

· 6 phút để đọc
Nguồn: Bình dân học AI

Series Bình dân Ứng dụng AI vào Google Drive

Bạn có bao giờ gặp phải tình huống cần sao chép dữ liệu từ một thư mục Google Drive của người khác sang thư mục Drive của mình chưa? Mình thì gặp thường xuyên. Trước đây, mình hay dùng một ứng dụng tiện ích trên Chrome Web Store để làm việc này. Nó giống như một "chú xe ôm công nghệ" chuyên chở dữ liệu vậy, rất nhanh và tiện lợi, đương nhiên là mất phí.

Nhưng, ôi thôi! Từ tháng 1 năm 2025, Google sẽ "cấm đường", không cho các ứng dụng kiểu "xe ôm" này hoạt động nữa nếu chỉ đăng nhập bằng tên người dùng và mật khẩu. Lý do là để bảo mật thông tin tốt hơn. Thế là "chú xe ôm" quen thuộc của mình "thất nghiệp" ☹.

Mình đã không biết phải làm sao để "chuyển nhà" cho đống dữ liệu đây? Mình chợt nhớ đến "anh thợ xây" Google Apps Script. Anh thợ này rất giỏi trong việc xây dựng các công cụ tự động hóa trên nền tảng Google. Mình liền nhờ vả anh ấy giúp đỡ.

Nhờ AI Lên Kế Hoạch Tạo ra Anh thợ xây

Mình đưa ra yêu cầu cho AI như sau:

"Tôi cần anh giúp tôi chuyển toàn bộ đồ đạc (dữ liệu) từ căn nhà cũ (folder nguồn) sang căn nhà mới (folder đích) trong khu phố Google Drive. Anh hãy xây cho tôi một căn phòng mới (folder mới) trong nhà mới, đặt tên giống hệt căn nhà cũ. Sau đó, anh hãy chuyển tất cả đồ đạc, kể cả những món đồ nhỏ nhặt trong các ngăn tủ (subfolders) sang căn phòng mới này nhé!"

Mình còn dặn dò thêm:

"Anh nhớ kiểm tra giấy tờ (quyền truy cập) xem có được phép vào nhà cũ và nhà mới không nhé!" "Nếu trong nhà mới đã có sẵn một căn phòng cùng tên, anh cứ dùng luôn căn phòng đó." "Trong lúc chuyển đồ, anh nhớ ghi chép lại cẩn thận (logging) để tôi theo dõi." "Nếu chẳng may làm rơi vỡ món đồ nào (lỗi), anh đừng dừng lại, cứ tiếp tục chuyển những món khác nhé!"

"Anh Thợ Xây" Bắt Tay Vào Việc

"Anh thợ xây" Apps Script rất thông minh, anh ấy nhanh chóng viết ra một đoạn mã (code) để thực hiện công việc. Đoạn mã này giống như một bản thiết kế chi tiết cho việc "chuyển nhà".

Dưới đây là đoạn mã mà Claude Sonnet 3.5 đã tạo ra:

// Configuration variables
var CONFIG = {
SOURCE_FOLDER_ID: 'source_folder_id',
DESTINATION_FOLDER_ID: 'destination_folder_id'
};

// Main function to run the script
function main() {
try {
// Get references to the folders
var sourceFolder = DriveApp.getFolderById(CONFIG.SOURCE_FOLDER_ID);
var destParentFolder = DriveApp.getFolderById(CONFIG.DESTINATION_FOLDER_ID);

// Check folder access permissions
if (!checkFolderAccess(sourceFolder, destParentFolder)) {
Logger.log('Insufficient permissions to access one of the folders. Please check again.');
return;
}

// Get the name of the source folder
var sourceFolderName = sourceFolder.getName();
Logger.log('Source folder name: ' + sourceFolderName);

// Check if the folder already exists in the destination
var existingFolder = findFolderByName(destParentFolder, sourceFolderName);
var destFolder;

if (existingFolder) {
Logger.log('Folder "' + sourceFolderName + '" already exists in the destination. Using this folder.');
destFolder = existingFolder;
} else {
// Create a new folder in the destination with the name of the source folder
destFolder = destParentFolder.createFolder(sourceFolderName);
Logger.log('Created a new folder: ' + sourceFolderName);
}

// Start the copy process
Logger.log('Starting to copy files and folders...');
copyFiles(sourceFolder, destFolder);
Logger.log('Finished copying files!');

} catch (e) {
Logger.log('An error occurred: ' + e.toString());
}
}

// Function to find a folder by name within a parent folder
function findFolderByName(parentFolder, folderName) {
var folders = parentFolder.getFolders();
while (folders.hasNext()) {
var folder = folders.next();
if (folder.getName() === folderName) {
return folder;
}
}
return null;
}

// Function to check folder access permissions
function checkFolderAccess(sourceFolder, destFolder) {
try {
sourceFolder.getName();
destFolder.getName();
return true;
} catch (e) {
Logger.log('Error checking folder access permissions: ' + e.toString());
return false;
}
}

// Function to perform the copy of files and subfolders
function copyFiles(sourceFolder, destFolder) {
// Copy all files
var files = sourceFolder.getFiles();
var fileCount = 0;
while (files.hasNext()) {
var file = files.next();
try {
file.makeCopy(file.getName(), destFolder);
fileCount++;
Logger.log('Copied file (' + fileCount + '): ' + file.getName());
} catch (e) {
Logger.log('Error copying file ' + file.getName() + ': ' + e.toString());
}
}

// Copy all subfolders
var subFolders = sourceFolder.getFolders();
var folderCount = 0;
while (subFolders.hasNext()) {
var subFolder = subFolders.next();
try {
var newSubFolder = destFolder.createFolder(subFolder.getName());
folderCount++;
Logger.log('Created subfolder (' + folderCount + '): ' + subFolder.getName());
copyFiles(subFolder, newSubFolder);
} catch (e) {
Logger.log('Error creating/copying subfolder ' + subFolder.getName() + ': ' + e.toString());
}
}
}

Cách Sử Dụng "Bản Thiết Kế" Của "Anh Thợ Xây"

Để sử dụng "bản thiết kế" này, bạn chỉ cần:

  1. Mở Google Apps Script: Truy cập https://script.google.com/.

  2. Copy/paste đoạn mã trên vào trình soạn thảo.

  3. Thay thế 'source_folder_id''destination_folder_id' bằng ID thực tế của thư mục nguồn và thư mục đích mà bạn muốn sao chép.

    (Cách lấy ID thư mục:

    • Mở thư mục trong Google Drive.
    • Nhìn lên thanh địa chỉ của trình duyệt, bạn sẽ thấy một đoạn như sau: https://drive.google.com/drive/folders/xxxxxxxxxxxxxxxxxxxxxxxxxxxx
    • Phần xxxxxxxxxxxxxxxxxxxxxxxxxxxx chính là ID của thư mục.)
  4. Lưu Script: Nhấn vào biểu tượng "Save" (Lưu) (hình đĩa mềm). Đặt tên cho script của bạn (ví dụ: "CopyFolder").

  5. Chạy Script: Nhấn vào nút "Run" (Chạy) (hình tam giác). Lần đầu chạy, Google sẽ yêu cầu bạn cấp quyền truy cập cho script.

  6. Theo Dõi Quá Trình: Sau khi chạy, script sẽ bắt đầu sao chép dữ liệu. Bạn có thể theo dõi tiến trình bằng cách xem "Execution log" (Nhật ký thực thi) (chọn "View" (Xem) > "Logs" (Nhật ký)).

Thế là xong! "Anh thợ xây" Apps Script sẽ tự động "chuyển nhà" cho dữ liệu của bạn. Bạn có thể theo dõi quá trình "chuyển nhà" thông qua các ghi chép (log) mà anh ấy để lại.

Nhờ có "anh thợ xây" Google Apps Script, mình đã "chuyển nhà" thành công cho dữ liệu mà không cần đến "chú xe ôm" kia nữa. Câu chuyện này cho thấy, đôi khi những thay đổi tưởng chừng như bất tiện lại mở ra cơ hội để chúng ta học hỏi và khám phá những công cụ mới, mạnh mẽ hơn.