কিভাবে গুগলড্রাইভে থাকা কোন ফোল্ডারের ভিতর থেকে সকল ইমেজের আইডি গুগল শীটে এক্সট্রাক্ট করতে হয়? How to extract image id of a google folder?


পদ্ধতিঃ  

প্রথমে যে ড্রাইভের ইমেজ আইডি পেতে চাচ্ছ সেই ড্রাইভে যাবেন (ইমেজ-১ এর মত My drive এ ক্লিক করতে হবে)।

এবার সেই ড্রাইভের সকল ফোল্ডার পাবলিক (শেয়ারেবল) করা না থাকলে পাবলিক করে দিতে হবে।

এখন সেখানে একটা গুগল শীট ওপেন করতে হবে (ইমেজ ২)

এবার গুগলশীটের মেনু বার থেকে Extensions বাটনে ক্লিক করলে Apps Script নামে একটা অপশান পাবে, সেখানে ক্লিক করতে হবে।

ইমেজ-
ইমেজ-১

ইমেজ-২
ইমেজ-২


এবার সেখানে নিচের কোডটা বসাতে হবে।

( সকল ফোল্ডার একসাথে বের করতে ) অটোমেটিক ফোল্ডারের নাম এবং আইডি ডিটেক্ট করবেঃ

function listDriveFoldersAndImages() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  sheet.clear(); // Clear existing content

  const driveUser = Session.getActiveUser().getEmail(); // Get active user's email
  const driveRootUrl = "https://drive.google.com/drive/my-drive"; // Root Drive link

  // Set Drive account information
  sheet.getRange(1, 1).setValue("Drive Account");
  sheet.getRange(2, 1).setValue(driveUser);
  sheet.getRange(2, 1).setFormula(`=HYPERLINK("${driveRootUrl}", "${driveUser}")`);
  sheet.getRange(1, 1, 2, 1).setBackground('#FFD700'); // Gold background for these two cells
  sheet.autoResizeColumn(1);

  const folders = DriveApp.getFolders();
  let colIndex = 2; // Start from column 2 (B), because A is used

  while (folders.hasNext()) {
    const folder = folders.next();
    const folderName = folder.getName();
    const folderFiles = folder.getFiles();

    // Write folder name at the first row of the current column
    sheet.getRange(1, colIndex).setValue(folderName);
    sheet.getRange(1, colIndex).setBackground('#00FF00'); // Green background for folder name

    let rowIndex = 2; // Start writing from the second row
    while (folderFiles.hasNext()) {
      const file = folderFiles.next();

      if (isImageFile(file)) {
        const fileId = file.getId();
        sheet.getRange(rowIndex, colIndex).setValue(fileId); // +1 because row 2 is already account info
        rowIndex++;
      }
    }

    sheet.autoResizeColumn(colIndex);
    colIndex++;
  }
}

// Helper function to check if the file is an image
function isImageFile(file) {
  const mimeType = file.getMimeType();
  return mimeType.startsWith('image/');
}



একটি নির্দিষ্ট ফোল্ডার থেকে ইমেজ আইডি বের করতেঃ


function exportImageIdsFromFolder() { const folderName = "My Images Folder"; // 🔁 Change this to your folder name const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); sheet.clear(); // Clear old content // Get Drive account email and Drive root link const driveUser = Session.getActiveUser().getEmail(); const driveRootUrl = "https://drive.google.com/drive/my-drive"; // Header and account info sheet.getRange("A1").setValue("Drive Account"); sheet.getRange("A2").setFormula(`=HYPERLINK("${driveRootUrl}", "${driveUser}")`); sheet.getRange("A1:A2").setBackground("#FFD700"); // Gold // Try to get the folder const folders = DriveApp.getFoldersByName(folderName); if (!folders.hasNext()) { SpreadsheetApp.getUi().alert(`Folder named "${folderName}" not found.`); return; } const folder = folders.next(); sheet.getRange("B1").setValue(folderName); sheet.getRange("B1").setBackground("#00FF00"); // Green const files = folder.getFiles(); let row = 2; while (files.hasNext()) { const file = files.next(); if (isImageFile(file)) { const fileId = file.getId(); // ⬅️ Only file ID sheet.getRange(row, 2).setValue(fileId); row++; } } sheet.autoResizeColumns(1, 2); } // Helper: check if a file is an image function isImageFile(file) { const mimeType = file.getMimeType(); return mimeType.startsWith("image/"); }

সেভ আইকনে ক্লিক করতে হবে এবং রান আইকনে ক্লিক করতে হবে। কোন পার্মিশান চাইলে দিয়ে দিতে হবে। ব্যাস হয়ে গেল আপনার কাজ।





Post a Comment

Previous Post Next Post