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

এই নির্দেশিকাটি ব্যাখ্যা করে যে কীভাবে Google Drive API ফাইল এবং ফোল্ডার অনুসন্ধানের বিভিন্ন উপায় সমর্থন করে।

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

ক্ষেত্র প্যারামিটার ব্যবহার করুন

যদি আপনি প্রতিক্রিয়ায় ফেরত দেওয়ার জন্য ক্ষেত্রগুলি নির্দিষ্ট করতে চান, তাহলে আপনি files রিসোর্সের যেকোনো পদ্ধতির সাথে fields সিস্টেম প্যারামিটার সেট করতে পারেন। যদি আপনি fields প্যারামিটারটি বাদ দেন, তাহলে সার্ভার পদ্ধতির জন্য নির্দিষ্ট ক্ষেত্রগুলির একটি ডিফল্ট সেট ফেরত পাঠাবে। উদাহরণস্বরূপ, list পদ্ধতি প্রতিটি ফাইলের জন্য শুধুমাত্র kind , id , name , mimeType এবং resourceKey ক্ষেত্রগুলি ফেরত পাঠায়। বিভিন্ন ক্ষেত্র ফেরত দিতে, নির্দিষ্ট ক্ষেত্রগুলি ফেরত দিন দেখুন।

একটি ফাইল পান

ফাইল পেতে, fileId path প্যারামিটার সহ files রিসোর্সে get পদ্ধতি ব্যবহার করুন। যদি আপনি ফাইল আইডি না জানেন, তাহলে list পদ্ধতি ব্যবহার করে সমস্ত ফাইল তালিকাভুক্ত করতে পারেন।

এই পদ্ধতিটি files রিসোর্সের একটি উদাহরণ হিসেবে ফাইলটি ফেরত পাঠায়। যদি আপনি alt=media কোয়েরি প্যারামিটার প্রদান করেন, তাহলে প্রতিক্রিয়াটিতে প্রতিক্রিয়ার মূল অংশে ফাইলের বিষয়বস্তু অন্তর্ভুক্ত থাকে। ফাইলটি ডাউনলোড বা রপ্তানি করতে, ফাইলগুলি ডাউনলোড এবং রপ্তানি করুন দেখুন।

পরিচিত ম্যালওয়্যার বা অন্যান্য অপব্যবহারকারী ফাইল ডাউনলোডের ঝুঁকি স্বীকার করতে, acknowledgeAbuse কোয়েরি প্যারামিটারটিকে true তে সেট করুন। এই ক্ষেত্রটি কেবল তখনই প্রযোজ্য যখন alt=media প্যারামিটার সেট করা থাকে এবং ব্যবহারকারী হয় ফাইলের মালিক অথবা শেয়ার্ড ড্রাইভের একজন সংগঠক যেখানে ফাইলটি থাকে।

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

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

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

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

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

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

query_term operator values

কোথায়:

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

  • operator কোয়েরি টার্মের জন্য শর্ত নির্দিষ্ট করে।

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

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

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

সমস্ত ফাইল কোয়েরি পদ দেখতে, ফাইল-নির্দিষ্ট কোয়েরি পদ দেখুন।

কোয়েরি তৈরি করতে ব্যবহার করা যেতে পারে এমন সকল কোয়েরি অপারেটর দেখতে, কোয়েরি অপারেটর দেখুন।

কোয়েরি স্ট্রিং উদাহরণ

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

কোয়েরিটি সঠিকভাবে কাজ করছে কিনা তা নিশ্চিত করার জন্য আপনাকে অবশ্যই আপনার ফাইলের নামের মধ্যে বিশেষ অক্ষরগুলি এড়িয়ে যেতে হবে। উদাহরণস্বরূপ, যদি একটি ফাইলের নামে একটি অ্যাপোস্ট্রোফি ( ' ) এবং একটি ব্যাকস্ল্যাশ ( "\" ) উভয় অক্ষর থাকে, তাহলে সেগুলি এড়িয়ে যাওয়ার জন্য একটি ব্যাকস্ল্যাশ ব্যবহার করুন: 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"'
"\" অক্ষর ধারণকারী একটি কোয়েরি সহ ফাইল (উদাহরণস্বরূপ, "\authors") 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 ফাইলের ফাইলের নাম এবং ID তে সার্চ ফলাফল ফিল্টার করতে হয়। এই নমুনাটি mimeType কোয়েরি শব্দটি ব্যবহার করে ফলাফলকে image/jpeg ধরণের ফাইলে সংকুচিত করে। এটি ড্রাইভ স্পেসে অনুসন্ধানকে আরও সংকুচিত করার জন্য drive জন্য spaces সেট করে। যখন nextPageToken null রিটার্ন করে, তখন আর কোন ফলাফল থাকে না।

জাভা

ড্রাইভ/স্নিপেটস/ড্রাইভ_ভি৩/এসআরসি/মেইন/জাভা/সার্চফাইল.জাভা
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, files(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;
  }
}

পাইথন

ড্রাইভ/স্নিপেটস/ড্রাইভ-ভি৩/ফাইল_স্নিপেট/সার্চ_ফাইল.পিআই
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()

নোড.জেএস

ড্রাইভ/স্নিপেটস/ড্রাইভ_ভি৩/ফাইল_স্নিপেটস/সার্চ_ফাইল.জেএস
import {GoogleAuth} from 'google-auth-library';
import {google} from 'googleapis';

/**
 * Searches for files in Google Drive.
 * @return {Promise<object[]>} A list of files.
 */
async function searchFile() {
  // Authenticate with Google and get an authorized client.
  // TODO (developer): Use an appropriate auth mechanism for your app.
  const auth = new GoogleAuth({
    scopes: 'https://www.googleapis.com/auth/drive',
  });

  // Create a new Drive API client (v3).
  const service = google.drive({version: 'v3', auth});

  // Search for files with the specified query.
  const result = await service.files.list({
    q: "mimeType='image/jpeg'",
    fields: 'nextPageToken, files(id, name)',
    spaces: 'drive',
  });

  // Print the name and ID of each found file.
  (result.data.files ?? []).forEach((file) => {
    console.log('Found file:', file.name, file.id);
  });

  return result.data.files ?? [];
}

পিএইচপি

ড্রাইভ/স্নিপেট/ড্রাইভ_ভি৩/এসআরসি/ড্রাইভসার্চফাইলস.পিএইচপি
<?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 অনুসন্ধান ক্যোয়ারী শব্দটি ব্যবহার করুন যার একটি কী এবং মান রয়েছে। উদাহরণস্বরূপ, additionalID নামক অনুরোধকারী অ্যাপের ব্যক্তিগত একটি কাস্টম ফাইল প্রপার্টি অনুসন্ধান করতে যার মান 8e8aceg2af2ge72e78 :

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 ' .

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

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

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

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