এই নির্দেশিকায় ব্যাখ্যা করা হয়েছে যে, গুগল ড্রাইভ এপিআই কীভাবে ফাইল ও ফোল্ডার খোঁজার বিভিন্ন পদ্ধতি সমর্থন করে।
আপনি files রিসোর্সের list মেথড ব্যবহার করে কোনো ড্রাইভ ইউজারের সব বা কিছু ফাইল ও ফোল্ডার রিটার্ন করতে পারেন। এছাড়াও, কিছু রিসোর্স মেথডের (যেমন get এবং update মেথড) জন্য প্রয়োজনীয় fileId পুনরুদ্ধার করতেও আপনি list মেথড ব্যবহার করতে পারেন।
ফিল্ড প্যারামিটার ব্যবহার করুন
রেসপন্সে কোন ফিল্ডগুলো ফেরত আসবে তা নির্দিষ্ট করে দিতে চাইলে, আপনি files রিসোর্সের যেকোনো মেথডের সাথে fields সিস্টেম প্যারামিটারটি সেট করতে পারেন। আপনি যদি fields প্যারামিটারটি বাদ দেন, তাহলে সার্ভার মেথডটির জন্য নির্দিষ্ট কিছু ডিফল্ট ফিল্ড ফেরত দেবে। উদাহরণস্বরূপ, list মেথডটি প্রতিটি ফাইলের জন্য শুধুমাত্র kind , id , name , mimeType , এবং resourceKey ফিল্ডগুলো ফেরত দেয়। ভিন্ন ফিল্ড ফেরত দেওয়ার জন্য, “Return specific fields” দেখুন।
আইডি দ্বারা একটি ফাইল পান
কোনো ফাইল পেতে, files রিসোর্সের get মেথডের সাথে ` fileId পাথ প্যারামিটারটি ব্যবহার করুন। যদি আপনি ফাইল আইডি না জানেন, তবে ` list মেথড ব্যবহার করে সমস্ত ফাইলের তালিকা দেখতে পারেন।
এই মেথডটি ফাইলটিকে একটি files রিসোর্সের ইনস্ট্যান্স হিসেবে রিটার্ন করে। আপনি যদি alt=media প্যারামিটারটি প্রদান করেন, তাহলে রেসপন্স বডিতে ফাইলের বিষয়বস্তু অন্তর্ভুক্ত থাকে। একটি ব্লব ফাইল ডাউনলোড করতে, “Download blob file content” দেখুন।
পরিচিত ম্যালওয়্যার বা অন্যান্য ক্ষতিকর ফাইল ডাউনলোড করার ঝুঁকি স্বীকার করতে, acknowledgeAbuse কোয়েরি প্যারামিটারটি true তে সেট করুন। এই ফিল্ডটি শুধুমাত্র তখনই প্রযোজ্য হবে যখন alt=media প্যারামিটারটি সেট করা থাকবে এবং ব্যবহারকারী ফাইলটির মালিক অথবা ফাইলটি যে শেয়ার্ড ড্রাইভে রয়েছে তার একজন সংগঠক হবেন।
আমার ড্রাইভে থাকা সমস্ত ফাইল ও ফোল্ডারের তালিকা দেখুন
বর্তমান ব্যবহারকারীর 'মাই ড্রাইভ'-এ থাকা সমস্ত ফাইল ও ফোল্ডার ফেরত পেতে কোনো প্যারামিটার ছাড়াই list ' মেথডটি ব্যবহার করুন।
নিম্নলিখিত কার্ল কমান্ডটি দেখায় কিভাবে সমস্ত ফাইল তালিকাভুক্ত করতে হয়:
curl -X GET \
'https://www.googleapis.com/drive/v3/files' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Accept: application/json'
ACCESS_TOKEN পরিবর্তে একটি অনুমোদিত OAuth 2.0 অ্যাক্সেস টোকেন ব্যবহার করুন।
আমার ড্রাইভে নির্দিষ্ট ফাইল ও ফোল্ডার অনুসন্ধান করুন
বর্তমান ব্যবহারকারীর 'মাই ড্রাইভ'-এ কোনো নির্দিষ্ট ফাইল বা ফোল্ডার খুঁজতে, এক বা একাধিক সার্চ টার্ম একত্রিত করে ফলাফল হিসেবে আসা ফাইলগুলো ফিল্টার করার জন্য ' list ' মেথডের সাথে কোয়েরি স্ট্রিং q ফিল্ডটি ব্যবহার করুন।
কোয়েরি স্ট্রিং সিনট্যাক্সে নিম্নলিখিত তিনটি অংশ থাকে:
query_term operator values
কোথায়:
query_termহলো অনুসন্ধানের জন্য প্রয়োজনীয় শব্দ বা ক্ষেত্র।operatorকোয়েরি টার্মের জন্য শর্ত নির্দিষ্ট করে।valuesহলো সেই নির্দিষ্ট মানগুলো যা আপনি আপনার অনুসন্ধানের ফলাফল ফিল্টার করতে ব্যবহার করতে চান।
উদাহরণস্বরূপ, নিম্নলিখিত কোয়েরি স্ট্রিংটি MIME টাইপ সেট করার মাধ্যমে সার্চকে ফিল্টার করে শুধুমাত্র ফোল্ডারগুলো ফেরত দেয়:
mimeType = 'application/vnd.google-apps.folder'
সমস্ত ফাইল কোয়েরি টার্ম দেখতে, ফাইল-নির্দিষ্ট কোয়েরি টার্ম দেখুন।
কোয়েরি তৈরি করতে ব্যবহারযোগ্য সমস্ত কোয়েরি অপারেটর দেখতে, কোয়েরি অপারেটরসমূহ দেখুন।
কোয়েরি স্ট্রিং এর উদাহরণ
নিচের সারণিতে কিছু সাধারণ কোয়েরি স্ট্রিং-এর উদাহরণ দেওয়া হলো। আপনি অনুসন্ধানের জন্য যে ক্লায়েন্ট লাইব্রেরি ব্যবহার করেন, তার ওপর নির্ভর করে প্রকৃত কোড ভিন্ন হতে পারে।
কোয়েরিটি সঠিকভাবে কাজ করার জন্য আপনাকে ফাইলের নামে থাকা বিশেষ অক্ষরগুলোকেও এস্কেপ করতে হবে। উদাহরণস্বরূপ, যদি কোনো ফাইলের নামে অ্যাপস্ট্রফি ( ' ) এবং ব্যাকস্ল্যাশ ( "\" ) উভয় অক্ষরই থাকে, তাহলে সেগুলোকে এস্কেপ করার জন্য একটি ব্যাকস্ল্যাশ ব্যবহার করুন: name contains 'quinn\'s paper\\essay' ।
| কী জিজ্ঞাসা করতে হবে | উদাহরণ |
|---|---|
স্ট্রিং ম্যাচ অপারেটর ( contains ) | |
| যে ফাইলগুলিতে 'hello' শব্দটি রয়েছে | fullText contains 'hello' |
| যে ফাইলগুলিতে হুবহু "hello world" শব্দটি রয়েছে | fullText contains '"hello world"' |
| যেসব ফাইলের কোয়েরিতে "\" অক্ষরটি থাকে (উদাহরণস্বরূপ, "\authors") | fullText contains '\\authors' |
| যেসব ফাইলের নামে 'বাজেট' শব্দটি রয়েছে | name contains 'budget' |
সমতা ও অসমতা অপারেটর ( = , != ) | |
| "হ্যালো" নামের ফাইলগুলি | name = 'hello' |
| যে ফাইলগুলো ফোল্ডার | mimeType = 'application/vnd.google-apps.folder' |
| যে ফাইলগুলো ফোল্ডার নয় | mimeType != 'application/vnd.google-apps.folder' |
| তারকাচিহ্নিত ফাইল | starred = true |
| ট্র্যাশে থাকা ফাইলগুলো | trashed = true |
| যে ফাইলগুলো ট্র্যাশে নেই | trashed = false |
| শর্টকাট যা একটি নির্দিষ্ট ফাইল আইডি নির্দেশ করে | shortcutDetails.targetId = '1987654321' |
| যে ফাইলগুলি কারও সাথে বা ডোমেনের সাথে শেয়ার করা হয়নি (ব্যক্তিগত, অথবা নির্দিষ্ট ব্যবহারকারী বা গোষ্ঠীর সাথে শেয়ার করা) | visibility = 'limited' |
| যে ফাইলগুলো লিঙ্কের মাধ্যমে যে কেউ অ্যাক্সেস করতে পারে | visibility = 'anyoneWithLink' |
| যে ফাইলগুলো ওয়েবে সর্বজনীনভাবে খুঁজে পাওয়া যায় | visibility = 'anyoneCanFind' |
তুলনা অপারেটর ( > , >= , < , <= ) | |
| একটি নির্দিষ্ট তারিখের পরে পরিবর্তিত ফাইল (ডিফল্ট সময় অঞ্চল হল UTC) | modifiedTime > '2012-06-04T12:00:00' |
| ১ জানুয়ারী, ২০২৩ এর পরে তৈরি করা ফাইলগুলি | createdTime > '2023-01-01T00:00:00' |
| ১ জানুয়ারী, ২০২৩ এর আগে সংশোধিত ফাইলসমূহ | modifiedTime < '2023-01-01T00:00:00' |
সংগ্রহ সদস্যপদ অপারেটর ( in ) | |
একটি সংগ্রহের অন্তর্গত ফাইলসমূহ (উদাহরণস্বরূপ, 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 |
| যে ফাইলগুলোতে ব্যবহারকারী "test@example.org"-এর পড়ার অনুমতি আছে | 'test@example.org' in readers |
সংগ্রহ মেলানোর অপারেটর ( has ) | |
| কাস্টম ফাইল প্রপার্টি সহ ফাইলগুলি যা সমস্ত অ্যাপের কাছে দৃশ্যমান। | properties has { key='mass' and value='1.3kg' } |
| অনুরোধকারী অ্যাপের জন্য ব্যক্তিগত একটি কাস্টম ফাইল প্রপার্টি সহ ফাইলসমূহ। | appProperties has { key='additionalID' and value='8e8aceg2af2ge72e78' } |
| যেসব ফাইলে 'department' কী-সহ একটি কাস্টম ফাইল প্রপার্টি আছে (মান নির্বিশেষে) | properties has { key='department' } |
যৌক্তিক অপারেটর ( and , or , not ) | |
| যে ফাইলগুলোর নামে 'hello' এবং 'goodbye' শব্দ দুটি রয়েছে | name contains 'hello' and name contains 'goodbye' |
| যে ফাইলগুলোর নামে 'hello' শব্দটি নেই | not name contains 'hello' |
| যে ফাইলগুলিতে "গুরুত্বপূর্ণ" লেখাটি রয়েছে এবং যেগুলি ট্র্যাশে আছে | fullText contains 'important' and trashed = true |
| যে ফাইলগুলিতে 'hello' শব্দটি নেই | not fullText contains 'hello' |
| একটি নির্দিষ্ট তারিখের পরে পরিবর্তিত ছবি বা ভিডিও ফাইল | modifiedTime > '2012-06-04T12:00:00' and (mimeType contains 'image/' or mimeType contains 'video/') |
| অনুমোদিত ব্যবহারকারীর সাথে শেয়ার করা ফাইল, যেগুলোর নামে "hello" শব্দটি রয়েছে। | sharedWithMe and name contains 'hello' |
| যে ফাইলগুলো ফোল্ডার বা শর্টকাট | mimeType = 'application/vnd.google-apps.folder' or mimeType = 'application/vnd.google-apps.shortcut' |
| "প্রজেক্ট প্ল্যান" নামের ফাইলগুলো যা ট্র্যাশে নেই | name = 'Project Plan' and trashed = false |
| একটি নির্দিষ্ট ফোল্ডারের ফাইলগুলো যা ট্র্যাশে নেই | '1234567' in parents and trashed = false |
ক্লায়েন্ট লাইব্রেরি ব্যবহার করে অনুসন্ধানের ফলাফল ফিল্টার করুন
নিম্নলিখিত কোড নমুনাটি দেখায় কিভাবে একটি ক্লায়েন্ট লাইব্রেরি ব্যবহার করে JPEG ফাইলের নাম এবং আইডি অনুসারে অনুসন্ধানের ফলাফল ফিল্টার করা যায়। এই নমুনাটি image/jpeg টাইপের ফাইলগুলিতে ফলাফল সীমাবদ্ধ করতে mimeType কোয়েরি টার্ম ব্যবহার করে। এটি অনুসন্ধানকে আরও সীমাবদ্ধ করে ড্রাইভ স্পেসে নিয়ে যাওয়ার জন্য spaces drive হিসেবে সেট করে। যখন nextPageToken null রিটার্ন করে, তখন আর কোনো ফলাফল দেখানো হয় না।
জাভা
পাইথন
নোড.জেএস
পিএইচপি
একটি পাবলিক ফোল্ডারে ফাইলগুলির তালিকা
সর্বজনীনভাবে শেয়ার করা কোনো ফোল্ডারে (যেখানে অ্যাক্সেস "লিঙ্কসহ যে কেউ" বা "ওয়েবে সর্বজনীন" হিসেবে সেট করা আছে) ফাইল অনুসন্ধান করতে বা তালিকাভুক্ত করতে, files রিসোর্সের list মেথডটি ব্যবহার করুন এবং q কোয়েরি প্যারামিটারটি ` parents কালেকশনে থাকা ফোল্ডারটির আইডি দ্বারা ফিল্টার করার জন্য সেট করুন:
'FOLDER_ID' in parents and trashed = false
পাবলিক ফোল্ডারের ফাইল তালিকাভুক্ত করার সময়, আপনি OAuth 2.0 ব্যবহারকারীর ক্রেডেনশিয়ালের পরিবর্তে একটি API কী ব্যবহার করে অনুরোধ প্রমাণীকরণ করতে পারেন। যদি ফোল্ডারটি একটি শেয়ার্ড ড্রাইভের মধ্যে অবস্থিত হয়, তাহলে আপনাকে অনুরোধে supportsAllDrives=true এবং includeItemsFromAllDrives=true সেট করতে হবে।
নিম্নলিখিত কোড নমুনাগুলি দেখায় কিভাবে একটি পাবলিক ফোল্ডারে ফাইলগুলির তালিকা তৈরি করতে হয়:
নোড.জেএস
/**
* List files in a public folder using an API key.
* @param {string} folderId The ID of the public folder.
* @param {string} apiKey Your Google Cloud API key.
* @return {Promise<Array>} The list of files.
*/
async function listPublicFolder(folderId, apiKey) {
const {google} = require('googleapis');
const service = google.drive({version: 'v3', auth: apiKey});
try {
const response = await service.files.list({
q: `'${folderId}' in parents and trashed = false`,
fields: 'nextPageToken, files(id, name, mimeType)',
supportsAllDrives: true,
includeItemsFromAllDrives: true,
});
const files = response.data.files;
console.log('Files:');
for (const file of files) {
console.log(`${file.name} (${file.id})`);
}
return files;
} catch (err) {
// TODO(developer): Handle error
console.error(err);
}
}
কার্ল
curl -G \
'https://www.googleapis.com/drive/v3/files' \
--data-urlencode "q='FOLDER_ID' in parents and trashed = false" \
--data-urlencode 'supportsAllDrives=true' \
--data-urlencode 'includeItemsFromAllDrives=true' \
--data-urlencode 'fields=nextPageToken,files(id,name,mimeType)' \
--data-urlencode 'key=API_KEY' \
-H 'Accept: application/json'
নিম্নলিখিতগুলি প্রতিস্থাপন করুন:
- FOLDER_ID : পাবলিক ফোল্ডারটির আইডি।
- API_KEY : আপনার প্রোজেক্টের API কী ।
কাস্টম বৈশিষ্ট্য সহ ফাইলগুলি অনুসন্ধান করুন
কাস্টম ফাইল প্রপার্টি সহ ফাইল অনুসন্ধান করতে, একটি কী এবং ভ্যালু সহ ` 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.FIELD_ID = 'VALUE'
সফল হলে, রেসপন্স বডিতে কোয়েরির সাথে মিলে যাওয়া সমস্ত ফাইলের তালিকা থাকে। আরও তথ্যের জন্য, ‘একটি নির্দিষ্ট লেবেল বা ফিল্ড ভ্যালু দিয়ে ফাইল অনুসন্ধান করুন ’ দেখুন।
কর্পোরেশন জুড়ে অনুসন্ধান করুন
ডিফল্টরূপে, list মেথড ব্যবহার করার সময় corpora কোয়েরি প্যারামিটারে user আইটেম কালেকশন সেট করা থাকে। অন্যান্য আইটেম কালেকশন, যেমন কোনো domain সাথে শেয়ার করা কালেকশন, সার্চ করার জন্য আপনাকে অবশ্যই corpora প্যারামিটারটি স্পষ্টভাবে সেট করতে হবে।
আপনি একটিমাত্র কোয়েরিতে একাধিক কর্পোরা অনুসন্ধান করতে পারেন; তবে, সম্মিলিত কর্পোরা খুব বড় হলে, এপিআই অসম্পূর্ণ ফলাফল দেখাতে পারে। রেসপন্স বডিতে থাকা incompleteSearch ফিল্ডটি পরীক্ষা করুন। যদি এর মান true , তাহলে কিছু ডকুমেন্ট বাদ পড়ে গেছে। এর সমাধান করতে, user অথবা drive ব্যবহার করে corpora সংকুচিত করুন।
list মেথডে orderBy কোয়েরি প্যারামিটার ব্যবহার করার সময়, বড় আইটেম কালেকশনের কোয়েরির জন্য createdTime কী ব্যবহার করা এড়িয়ে চলুন, কারণ এর জন্য অতিরিক্ত প্রসেসিং প্রয়োজন হয় এবং এর ফলে টাইমআউট বা অন্যান্য সমস্যা হতে পারে। বড় আইটেম কালেকশনে সময়-ভিত্তিক সর্টিংয়ের জন্য, আপনি এর পরিবর্তে modifiedTime ব্যবহার করতে পারেন, কারণ এটি এই ধরনের কোয়েরিগুলো পরিচালনা করার জন্য অপ্টিমাইজ করা হয়েছে। উদাহরণস্বরূপ, orderBy modifiedTime (বা modifiedTime desc ) হিসেবে সেট করুন।
আপনি যদি orderBy কোয়েরি প্যারামিটারটি বাদ দেন, তাহলে কোনো ডিফল্ট সর্ট অর্ডার থাকে না এবং আইটেমগুলো যথেচ্ছভাবে ফেরত আসে।
সম্পর্কিত বিষয়
- শেয়ার করা ড্রাইভ অনুসন্ধান করুন
- অনুসন্ধান কোয়েরির পদ এবং অপারেটর
- গুগল ওয়ার্কস্পেস এবং গুগল ড্রাইভ সমর্থিত MIME প্রকারগুলি
- ভূমিকা এবং অনুমতি
- একটি নির্দিষ্ট লেবেল বা ফিল্ড মান দিয়ে ফাইল অনুসন্ধান করুন