ফাইল এবং ফোল্ডার অনুসন্ধান করুন

গুগল ড্রাইভ API ফাইল এবং ফোল্ডার অনুসন্ধান করার বিভিন্ন উপায় সমর্থন করে।

আপনি ড্রাইভ ব্যবহারকারীর সমস্ত বা কিছু ফাইল এবং ফোল্ডার ফেরত দিতে files.list পদ্ধতি ব্যবহার করতে পারেন। কিছু রিসোর্স পদ্ধতি (যেমন files.get এবং files.update ) এর জন্য প্রয়োজনীয় fileId পুনরুদ্ধার করতে files.list পদ্ধতি ব্যবহার করা যেতে পারে।

বর্তমান ব্যবহারকারীর আমার ড্রাইভে সমস্ত ফাইল এবং ফোল্ডার অনুসন্ধান করুন৷

সমস্ত ফাইল এবং ফোল্ডার ফেরত দিতে কোনো পরামিতি ছাড়া files.list পদ্ধতি ব্যবহার করুন।

GET https://www.googleapis.com/drive/v3/files

বর্তমান ব্যবহারকারীর আমার ড্রাইভে নির্দিষ্ট ফাইল বা ফোল্ডার অনুসন্ধান করুন৷

ফাইল বা ফোল্ডারগুলির একটি নির্দিষ্ট সেট অনুসন্ধান করতে, ফাইলগুলিকে ফিল্টার করার জন্য ফাইলগুলিকে এক বা একাধিক অনুসন্ধান পদগুলিকে একত্রিত করে ফিল্টার করতে files.list পদ্ধতির সাথে ক্যোয়ারী স্ট্রিং q ক্ষেত্রটি ব্যবহার করুন৷

একটি ক্যোয়ারী স্ট্রিং নিম্নলিখিত তিনটি অংশ ধারণ করে:

query_term operator values

কোথায়:

  • query_term হল অনুসন্ধানের জন্য কোয়েরি শব্দ বা ক্ষেত্র।

  • operator ক্যোয়ারী শব্দের শর্ত উল্লেখ করে।

  • values হল নির্দিষ্ট মানগুলি যা আপনি আপনার অনুসন্ধান ফলাফলগুলি ফিল্টার করতে ব্যবহার করতে চান৷

আপনি ফিল্টার ফাইল এবং ফোল্ডারগুলি ব্যবহার করতে পারেন এমন ক্যোয়ারী শর্তাবলী এবং অপারেটরগুলি দেখতে, অনুসন্ধান ক্যোয়ারী পদ এবং অপারেটরগুলি দেখুন৷

উদাহরণস্বরূপ, নিম্নলিখিত ক্যোয়ারী স্ট্রিংটি MIME প্রকার সেট করে শুধুমাত্র ফোল্ডার ফেরাতে অনুসন্ধানটিকে ফিল্টার করে:

q: mimeType = 'application/vnd.google-apps.folder'

MIME প্রকারের বিষয়ে আরও তথ্যের জন্য, Google Workspace এবং Google Drive সমর্থিত MIME প্রকারগুলি দেখুন।

প্রশ্ন স্ট্রিং উদাহরণ

নিম্নলিখিত সারণীতে কিছু মৌলিক ক্যোয়ারী স্ট্রিং এর উদাহরণ রয়েছে। আপনি আপনার অনুসন্ধানের জন্য যে ক্লায়েন্ট লাইব্রেরিটি ব্যবহার করেন তার উপর নির্ভর করে প্রকৃত কোডটি ভিন্ন হয়।

ক্যোয়ারী সঠিকভাবে কাজ করে তা নিশ্চিত করতে আপনাকে অবশ্যই আপনার ফাইলের নামের বিশেষ অক্ষরগুলি এড়িয়ে যেতে হবে। উদাহরণ স্বরূপ, যদি একটি ফাইলের নাম এপোস্ট্রফি ( ' ) এবং একটি ব্যাকস্ল্যাশ ( "\" ) অক্ষর উভয়ই ধারণ করে, সেগুলি এড়াতে একটি ব্যাকস্ল্যাশ ব্যবহার করুন: name contains 'quinn\'s paper\\essay'

আপনি কি জিজ্ঞাসা করতে চান উদাহরণ
"হ্যালো" নামের ফাইল name = 'hello'
"হ্যালো" এবং "বিদায়" শব্দগুলি সম্বলিত একটি নামের ফাইল name contains 'hello' and name contains 'goodbye'
একটি নামের ফাইল যাতে "হ্যালো" শব্দ নেই not name contains 'hello'
যে ফাইলগুলিতে "গুরুত্বপূর্ণ" পাঠ্য রয়েছে এবং ট্র্যাশে রয়েছে৷ fullText contains 'important' and trashed = true
যে ফাইলগুলিতে "হ্যালো" শব্দ রয়েছে fullText contains 'hello'
যে ফাইলগুলিতে "হ্যালো" শব্দটি নেই not fullText contains 'hello'
যে ফাইলগুলিতে "হ্যালো ওয়ার্ল্ড" সঠিক বাক্যাংশ রয়েছে fullText contains '"hello world"'
একটি প্রশ্ন সহ ফাইল যাতে "\" অক্ষর রয়েছে (উদাহরণস্বরূপ, "\ লেখক") fullText contains '\\authors'
ফোল্ডার যে ফাইল mimeType = 'application/vnd.google-apps.folder'
যে ফাইলগুলি ফোল্ডার নয়৷ mimeType != 'application/vnd.google-apps.folder'
একটি প্রদত্ত তারিখের পরে ফাইলগুলি সংশোধন করা হয়েছে (ডিফল্ট সময় অঞ্চল হল UTC) modifiedTime > '2012-06-04T12:00:00'
ছবি বা ভিডিও ফাইল একটি নির্দিষ্ট তারিখের পরে পরিবর্তিত হয় modifiedTime > '2012-06-04T12:00:00' and (mimeType contains 'image/' or mimeType contains 'video/')
তারকাচিহ্নিত ফাইল starred = true
একটি সংগ্রহের মধ্যে ফাইল (উদাহরণস্বরূপ, parents সংগ্রহে ফোল্ডার আইডি) '1234567' in parents
একটি সংগ্রহে একটি অ্যাপ্লিকেশন ডেটা ফোল্ডারে ফাইল 'appDataFolder' in parents
যে ফাইলগুলির জন্য ব্যবহারকারী "test@example.org" এর মালিক৷ 'test@example.org' in owners
যে ফাইলগুলির জন্য "test@example.org" ব্যবহারকারীর লেখার অনুমতি রয়েছে৷ 'test@example.org' in writers
যে ফাইলগুলির জন্য "group@example.org" গ্রুপের সদস্যদের লেখার অনুমতি আছে৷ 'group@example.org' in writers
নামে "হ্যালো" সহ অনুমোদিত ব্যবহারকারীর সাথে ফাইলগুলি ভাগ করা হয়েছে৷ sharedWithMe and name contains 'hello'
একটি কাস্টম ফাইল প্রপার্টি সহ ফাইল সব অ্যাপে দৃশ্যমান properties has { key='mass' and value='1.3kg' }
অনুরোধকারী অ্যাপের ব্যক্তিগত একটি কাস্টম ফাইল সম্পত্তি সহ ফাইল appProperties has { key='additionalID' and value='8e8aceg2af2ge72e78' }
যে ফাইলগুলি কারও বা ডোমেনের সাথে ভাগ করা হয়নি (শুধুমাত্র ব্যক্তিগত, বা নির্দিষ্ট ব্যবহারকারী বা গোষ্ঠীর সাথে ভাগ করা হয়েছে) visibility = 'limited'

একটি ক্লায়েন্ট লাইব্রেরি দিয়ে অনুসন্ধান ফলাফল ফিল্টার করুন

নিচের কোডের নমুনাটি দেখায় কিভাবে একটি ক্লায়েন্ট লাইব্রেরি ব্যবহার করে সার্চের ফলাফল ফাইলের নাম এবং JPEG ফাইলের আইডি ফিল্টার করতে হয়। এই নমুনাটি image/jpeg টাইপের ফাইলে ফলাফল সংকুচিত করতে mimeType ক্যোয়ারী শব্দটি ব্যবহার করে। এটি ড্রাইভ স্পেসে অনুসন্ধানকে আরও সংকীর্ণ করতে drive জন্য spaces সেট করে। যখন nextPageToken null রিটার্ন করে, তখন আর কোন ফলাফল নেই।

জাভা

drive/snippets/drive_v3/src/main/java/SearchFile.java
import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.services.drive.Drive;
import com.google.api.services.drive.DriveScopes;
import com.google.api.services.drive.model.File;
import com.google.api.services.drive.model.FileList;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/* Class to demonstrate use-case of search files. */
public class SearchFile {

  /**
   * Search for specific set of files.
   *
   * @return search result list.
   * @throws IOException if service account credentials file not found.
   */
  public static List<File> searchFile() throws IOException {
           /*Load pre-authorized user credentials from the environment.
           TODO(developer) - See https://developers.google.com/identity for
           guides on implementing OAuth2 for your application.*/
    GoogleCredentials credentials = GoogleCredentials.getApplicationDefault()
        .createScoped(Arrays.asList(DriveScopes.DRIVE_FILE));
    HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(
        credentials);

    // Build a new authorized API client service.
    Drive service = new Drive.Builder(new NetHttpTransport(),
        GsonFactory.getDefaultInstance(),
        requestInitializer)
        .setApplicationName("Drive samples")
        .build();

    List<File> files = new ArrayList<File>();

    String pageToken = null;
    do {
      FileList result = service.files().list()
          .setQ("mimeType='image/jpeg'")
          .setSpaces("drive")
          .setFields("nextPageToken, items(id, title)")
          .setPageToken(pageToken)
          .execute();
      for (File file : result.getFiles()) {
        System.out.printf("Found file: %s (%s)\n",
            file.getName(), file.getId());
      }

      files.addAll(result.getFiles());

      pageToken = result.getNextPageToken();
    } while (pageToken != null);

    return files;
  }
}

পাইথন

drive/snippets/drive-v3/file_snippet/search_file.py
import google.auth
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError


def search_file():
  """Search file in drive location

  Load pre-authorized user credentials from the environment.
  TODO(developer) - See https://developers.google.com/identity
  for guides on implementing OAuth2 for the application.
  """
  creds, _ = google.auth.default()

  try:
    # create drive api client
    service = build("drive", "v3", credentials=creds)
    files = []
    page_token = None
    while True:
      # pylint: disable=maybe-no-member
      response = (
          service.files()
          .list(
              q="mimeType='image/jpeg'",
              spaces="drive",
              fields="nextPageToken, files(id, name)",
              pageToken=page_token,
          )
          .execute()
      )
      for file in response.get("files", []):
        # Process change
        print(f'Found file: {file.get("name")}, {file.get("id")}')
      files.extend(response.get("files", []))
      page_token = response.get("nextPageToken", None)
      if page_token is None:
        break

  except HttpError as error:
    print(f"An error occurred: {error}")
    files = None

  return files


if __name__ == "__main__":
  search_file()

Node.js

drive/snippets/drive_v3/file_snippets/search_file.js
/**
 * Search file in drive location
 * @return{obj} data file
 * */
async function searchFile() {
  const {GoogleAuth} = require('google-auth-library');
  const {google} = require('googleapis');

  // Get credentials and build service
  // TODO (developer) - Use appropriate auth mechanism for your app
  const auth = new GoogleAuth({
    scopes: 'https://www.googleapis.com/auth/drive',
  });
  const service = google.drive({version: 'v3', auth});
  const files = [];
  try {
    const res = await service.files.list({
      q: 'mimeType=\'image/jpeg\'',
      fields: 'nextPageToken, files(id, name)',
      spaces: 'drive',
    });
    Array.prototype.push.apply(files, res.files);
    res.data.files.forEach(function(file) {
      console.log('Found file:', file.name, file.id);
    });
    return res.data.files;
  } catch (err) {
    // TODO(developer) - Handle error
    throw err;
  }
}

পিএইচপি

drive/snippets/drive_v3/src/DriveSearchFiles.php
use Google\Client;
use Google\Service\Drive;
function searchFiles()
{
    try {
        $client = new Client();
        $client->useApplicationDefaultCredentials();
        $client->addScope(Drive::DRIVE);
        $driveService = new Drive($client);
        $files = array();
        $pageToken = null;
        do {
            $response = $driveService->files->listFiles(array(
                'q' => "mimeType='image/jpeg'",
                'spaces' => 'drive',
                'pageToken' => $pageToken,
                'fields' => 'nextPageToken, files(id, name)',
            ));
            foreach ($response->files as $file) {
                printf("Found file: %s (%s)\n", $file->name, $file->id);
            }
            array_push($files, $response->files);

            $pageToken = $response->pageToken;
        } while ($pageToken != null);
        return $files;
    } catch(Exception $e) {
       echo "Error Message: ".$e;
    }
}

একটি কাস্টম ফাইল সম্পত্তি সঙ্গে ফাইল জন্য অনুসন্ধান করুন

একটি কাস্টম ফাইল বৈশিষ্ট্য সহ ফাইলগুলি অনুসন্ধান করতে, একটি কী এবং মান সহ properties বা appProperties অনুসন্ধান ক্যোয়ারী শব্দটি ব্যবহার করুন৷ উদাহরণস্বরূপ, 8e8aceg2af2ge72e78 মান সহ additionalID নামক অনুরোধকারী অ্যাপের ব্যক্তিগত একটি কাস্টম ফাইল সম্পত্তি অনুসন্ধান করতে:

appProperties has { key='additionalID' and value='8e8aceg2af2ge72e78' }

আরও তথ্যের জন্য, কাস্টম ফাইল বৈশিষ্ট্য যোগ করুন দেখুন।

একটি নির্দিষ্ট লেবেল বা ক্ষেত্রের মান সহ ফাইলগুলির জন্য অনুসন্ধান করুন৷

নির্দিষ্ট লেবেল সহ ফাইলগুলি অনুসন্ধান করতে, একটি নির্দিষ্ট লেবেল আইডি সহ labels অনুসন্ধান ক্যোয়ারী শব্দটি ব্যবহার করুন৷ উদাহরণস্বরূপ: 'labels/ LABEL_ID ' in labels । সফল হলে, প্রতিক্রিয়া বডিতে লেবেল প্রয়োগ করা হয়েছে এমন সমস্ত ফাইল দৃষ্টান্ত থাকে।

একটি নির্দিষ্ট লেবেল আইডি ছাড়া ফাইল অনুসন্ধান করতে: Not 'labels/ LABEL_ID ' in labels

এছাড়াও আপনি নির্দিষ্ট ক্ষেত্রের মানগুলির উপর ভিত্তি করে ফাইলগুলি অনুসন্ধান করতে পারেন। উদাহরণস্বরূপ, একটি পাঠ্য মান সহ ফাইলগুলি অনুসন্ধান করতে: labels/ LABEL_ID .text_field_id =' TEXT '

আরও তথ্যের জন্য, একটি নির্দিষ্ট লেবেল বা ক্ষেত্রের মান সহ ফাইলগুলির জন্য অনুসন্ধান দেখুন।

কর্পোরা অনুসন্ধান করুন

files.list কল করে এমন অনুসন্ধানগুলি ডিফল্টরূপে user corpora ব্যবহার করে৷ অন্যান্য কর্পোরা অনুসন্ধান করতে, যেমন একটি domain সাথে ভাগ করা ফাইল, corpora প্যারামিটার সেট করুন৷

একক কোয়েরিতে একাধিক কর্পোরা অনুসন্ধান করা যেতে পারে, যদিও সম্মিলিত কর্পোরাটি খুব বড় হলে অসম্পূর্ণ ফলাফল ফেরত দেওয়া হতে পারে। যদি প্রতিক্রিয়া বডিতে incompleteSearch true হয়, তাহলে সমস্ত নথি ফেরত দেওয়া হয়নি। যদি এটি ঘটে থাকে, তাহলে user বা drive মতো একটি ভিন্ন কর্পোরা বেছে নিয়ে আপনার ক্যোয়ারীটি সংকুচিত করা উচিত।