এই নির্দেশিকায় গুগল ড্রাইভ এপিআই ব্যবহার করে গুগল ড্রাইভে ফাইল তৈরি ও পরিচালনা করার পদ্ধতি ব্যাখ্যা করা হয়েছে।
ফাইল তৈরি করুন
ড্রাইভে মেটাডেটা বা কন্টেন্টবিহীন একটি ফাইল তৈরি করতে, files রিসোর্সের create মেথডটি কোনো প্যারামিটার ছাড়াই ব্যবহার করুন।
যখন আপনি ফাইলটি তৈরি করেন, তখন মেথডটি একটি files রিসোর্স রিটার্ন করে। ফাইলটিকে drive.file kind , একটি id , "Untitled" name এবং application/octet-stream ধরনের একটি mimeType দেওয়া হয়। uploadType আবশ্যক হিসেবে চিহ্নিত করা হলেও এর ডিফল্ট মান media থাকে, তাই আপনাকে এটি সরবরাহ করতে হবে না।
ড্রাইভ ফাইল সীমা সম্পর্কে আরও তথ্যের জন্য, ফাইল এবং ফোল্ডার সীমা দেখুন।
নিম্নলিখিত কোড নমুনাগুলি দেখায় কিভাবে কোনও মেটাডেটা বা বিষয়বস্তু ছাড়া একটি ফাইল তৈরি করতে হয়:
নোড.জেএস
/**
* Create an empty file.
* @return {string} The created file's ID.
*/
async function createEmptyFile() {
// Get credentials and build service
// TODO(developer): Use appropriate auth mechanism for your app
const {GoogleAuth} = require('google-auth-library');
const {google} = require('googleapis');
const auth = new GoogleAuth({scopes: 'https://www.googleapis.com/auth/drive'});
const service = google.drive({version: 'v3', auth});
try {
const response = await service.files.create({});
console.log('File ID: ' + response.data.id);
return response.data.id;
} catch (err) {
// TODO(developer): Handle error
console.error(err);
}
}
কার্ল
curl -X POST 'https://www.googleapis.com/drive/v3/files' \
-H 'Authorization: Bearer ACCESS_TOKEN'
নিম্নলিখিতগুলি প্রতিস্থাপন করুন:
- ACCESS_TOKEN : আপনার অ্যাপের OAuth 2.0 টোকেন।
ফিল্ড প্যারামিটার ব্যবহার করুন
রেসপন্সে কোন ফিল্ডগুলো ফেরত আসবে তা নির্দিষ্ট করে দিতে চাইলে, আপনি files রিসোর্সের যেকোনো মেথডের সাথে fields সিস্টেম প্যারামিটারটি সেট করতে পারেন। আপনি যদি fields প্যারামিটারটি বাদ দেন, তাহলে সার্ভার মেথডটির জন্য নির্দিষ্ট কিছু ডিফল্ট ফিল্ড ফেরত দেবে। উদাহরণস্বরূপ, list মেথডটি প্রতিটি ফাইলের জন্য শুধুমাত্র kind , id , name , mimeType , এবং resourceKey ফিল্ডগুলো ফেরত দেয়। ভিন্ন ফিল্ড ফেরত দেওয়ার জন্য, “Return specific fields” দেখুন।
ফাইলের মালিকানা
ড্রাইভ এপিআই ব্যবহার করে যখন কোনো ফাইল তৈরি করা হয়, তখন তার মালিকানা অ্যাপ দ্বারা ব্যবহৃত প্রমাণীকরণ তথ্যের উপর নিম্নলিখিত উপায়ে নির্ভর করে:
ব্যবহারকারী অ্যাকাউন্ট (OAuth 2.0) : যদি অ্যাপ্লিকেশনটি কোনো ব্যবহারকারীর পক্ষ থেকে প্রমাণীকরণ করে, তবে সেই ব্যবহারকারী ফাইলটির মালিক হয়ে যান। এরপর ফাইলটি তাদের 'মাই ড্রাইভ' ফোল্ডারে বা একটি নির্দিষ্ট ফোল্ডারে থাকে। এটি তাদের স্টোরেজ কোটা ব্যবহার করে।
সার্ভিস অ্যাকাউন্ট : যদি অ্যাপ্লিকেশনটি একটি সার্ভিস অ্যাকাউন্ট ব্যবহার করে প্রমাণীকরণ করে, তবে সেই সার্ভিস অ্যাকাউন্টটিই ফাইলের মালিক হয়। ফাইলটি তখন সার্ভিস অ্যাকাউন্টের জন্য নির্ধারিত ড্রাইভ স্টোরেজে থাকে। স্পষ্টভাবে শেয়ার করা না হলে, ফাইলগুলো অন্য কোনো ড্রাইভ স্টোরেজ অ্যাকাউন্টে দেখা যায় না। যদি সার্ভিস অ্যাকাউন্টটি মুছে ফেলা হয়, তবে এর মালিকানাধীন সমস্ত ফাইলও সঙ্গে সঙ্গে মুছে যায়।
আপনি যদি একটি সার্ভিস অ্যাকাউন্ট ব্যবহার করেন কিন্তু কোনো নির্দিষ্ট ইউজার অ্যাকাউন্টকে একটি ফাইলের মালিকানা দিতে চান, তাহলে ডোমেইন-ওয়াইড ডেলিগেশন ব্যবহার করুন। এটি সার্ভিস অ্যাকাউন্টকে একজন ইউজারের ছদ্মবেশ ধারণ করতে এবং তার পক্ষ থেকে ফাইল তৈরি করার সুযোগ দেয়। আরও তথ্যের জন্য, সার্ভিস অ্যাকাউন্টে ডোমেইন-ব্যাপী কর্তৃত্ব অর্পণ দেখুন।
ফাইল পারমিশন সম্পর্কে আরও তথ্যের জন্য, ফাইল, ফোল্ডার এবং ড্রাইভ শেয়ার দেখুন।
আপনার ফাইলগুলোর সাথে ব্যবহার করার জন্য আইডি তৈরি করুন।
files রিসোর্সের ` generateIds মেথডটি আপনাকে আগে থেকেই অনন্য ফাইল আইডি তৈরি করার সুযোগ দেয়, যা ড্রাইভে ফাইল ও ফোল্ডার তৈরি বা কপি করার সময় ব্যবহার করা যেতে পারে। এটি তখন কাজে আসতে পারে যখন ড্রাইভকে স্বয়ংক্রিয়ভাবে আইডি নির্ধারণ করতে না দিয়ে, আপনার অ্যাপ থেকে ফাইল আইডিগুলো নিয়ন্ত্রণ করার প্রয়োজন হয়।
আপনি count কোয়েরি প্যারামিটার ব্যবহার করে তৈরি হওয়া আইডির সংখ্যা নির্ধারণ করতে পারেন। count সেট করা না থাকলে, ডিফল্টরূপে ১০টি আইডি ফেরত দেওয়া হয়। আপনি সর্বোচ্চ ১,০০০টি আইডির জন্য অনুরোধ করতে পারবেন।
এছাড়াও আপনি সেই space এবং কোন type জিনিসের জন্য আইডিগুলো ব্যবহার করা যাবে, তা নির্দিষ্ট করে দিতে পারেন।
একবার একটি আইডি তৈরি হয়ে গেলে, সেটি id ফিল্ডের মাধ্যমে create বা copy মেথডে পাঠানো যায়। এর ফলে তৈরি বা কপি করা ফাইলটি পূর্বনির্ধারিত আইডি-টিই ব্যবহার করে।
যদি ফাইলটি সফলভাবে তৈরি বা কপি করা হয়, তাহলে পরবর্তী প্রচেষ্টাগুলোতে একটি 409 Conflict HTTP স্ট্যাটাস কোড প্রতিক্রিয়া আসে এবং কোনো সদৃশ ফাইল তৈরি হয় না।
উল্লেখ্য যে, application/vnd.google-apps.drive-sdk এবং application/vnd.google-apps.folder MIME টাইপগুলো ছাড়া, গুগল ওয়ার্কস্পেস ফাইল তৈরির জন্য আগে থেকে তৈরি করা আইডি সমর্থিত নয়। একইভাবে, গুগল ওয়ার্কস্পেস ফাইল ফরম্যাটে রূপান্তরের উল্লেখ রয়েছে এমন আপলোডও সমর্থিত নয়।
নিম্নলিখিত কোড নমুনাগুলি দেখায় কিভাবে আগে থেকে অনন্য ফাইল আইডি তৈরি করতে হয়:
নোড.জেএস
/**
* Pre-generate unique file IDs.
*/
async function generateFileIds() {
// Get credentials and build service
// TODO(developer): Use appropriate auth mechanism for your app
const {GoogleAuth} = require('google-auth-library');
const {google} = require('googleapis');
const auth = new GoogleAuth({scopes: 'https://www.googleapis.com/auth/drive'});
const service = google.drive({version: 'v3', auth});
try {
const response = await service.files.generateIds({
count: 10,
space: 'drive'
});
const ids = response.data.ids;
console.log('Generated IDs:');
for (const id of ids) {
console.log(id);
}
} catch (err) {
// TODO(developer): Handle error
console.error(err);
}
}
কার্ল
curl 'https://www.googleapis.com/drive/v3/files/generateIds?count=10&space=drive' \
-H 'Authorization: Bearer ACCESS_TOKEN'
নিম্নলিখিতগুলি প্রতিস্থাপন করুন:
- ACCESS_TOKEN : আপনার অ্যাপের OAuth 2.0 টোকেন।
শুধুমাত্র মেটাডেটা ফাইল তৈরি করুন
মেটাডেটা-অনলি ফাইলে কোনো কন্টেন্ট থাকে না। মেটাডেটা হলো এমন ডেটা (যেমন name , mimeType , এবং createdTime ) যা ফাইলটির বর্ণনা দেয়। name মতো ফিল্ডগুলো ব্যবহারকারী-নিরপেক্ষ এবং প্রতিটি ব্যবহারকারীর জন্য একই রকম দেখায়, অন্যদিকে viewedByMeTime এর মতো ফিল্ডগুলোতে ব্যবহারকারী-নির্দিষ্ট মান থাকে।
শুধুমাত্র মেটাডেটা-যুক্ত ফাইলের একটি উদাহরণ হলো application/vnd.google-apps.folder MIME টাইপের একটি ফোল্ডার। আরও তথ্যের জন্য, ফোল্ডার তৈরি ও তাতে ডেটা যুক্ত করা দেখুন। আরেকটি উদাহরণ হলো application/vnd.google-apps.shortcut MIME টাইপের একটি শর্টকাট, যা ড্রাইভের অন্য একটি ফাইলকে নির্দেশ করে। আরও তথ্যের জন্য, ড্রাইভ ফাইলের শর্টকাট তৈরি করা দেখুন।
থাম্বনেইল ছবি পরিচালনা করুন
থাম্বনেইল ব্যবহারকারীদের ড্রাইভ ফাইল শনাক্ত করতে সাহায্য করে। ড্রাইভ সাধারণ ফাইল টাইপগুলোর জন্য স্বয়ংক্রিয়ভাবে থাম্বনেইল তৈরি করতে পারে অথবা আপনি আপনার অ্যাপ দ্বারা তৈরি একটি থাম্বনেইল ইমেজ প্রদান করতে পারেন। আরও তথ্যের জন্য, ‘থাম্বনেইল আপলোড করুন’ দেখুন।
বিদ্যমান ফাইল কপি করুন
একটি ফাইল কপি করতে এবং অনুরোধ করা যেকোনো আপডেট প্রয়োগ করতে, files রিসোর্সের copy মেথডটি ব্যবহার করুন। যে fileId কপি করতে চান, সেটি খুঁজে বের করার জন্য list মেথডটি ব্যবহার করুন।
আপনি প্যাচ সেম্যান্টিকসের মাধ্যমে আপডেট প্রয়োগ করতে পারেন, অর্থাৎ আপনি একটি রিসোর্সে আংশিক পরিবর্তন করতে পারেন। আপনার অনুরোধে যে ফিল্ডগুলো আপনি পরিবর্তন করতে চান, সেগুলো আপনাকে অবশ্যই স্পষ্টভাবে উল্লেখ করতে হবে। অনুরোধে অন্তর্ভুক্ত নয় এমন ফিল্ডগুলো তাদের বিদ্যমান মান ধরে রাখে। আরও তথ্যের জন্য, ‘আংশিক রিসোর্স নিয়ে কাজ করা’ দেখুন।
আপনি generateIds মেথডটি ব্যবহার করে কপি করা ফাইলের ফাইল আইডি আগে থেকে সেট করতে পারেন। আরও তথ্যের জন্য, আপনার ফাইলগুলিতে ব্যবহার করার জন্য আইডি তৈরি করুন দেখুন।
মনে রাখবেন, কলটি অনুমোদন করার জন্য আপনাকে একটি উপযুক্ত ড্রাইভ এপিআই স্কোপ ব্যবহার করতে হবে। ড্রাইভ স্কোপ সম্পর্কে আরও তথ্যের জন্য, “গুগল ড্রাইভ এপিআই স্কোপ নির্বাচন করুন” দেখুন।
নিম্নলিখিত কোড নমুনাগুলি দেখায় কিভাবে একটি ফাইল কপি করতে এবং এর নাম আপডেট করতে হয়:
নোড.জেএস
/**
* Copy an existing file.
* @return {string} The copied file's ID.
*/
async function copyFile() {
// Get credentials and build service
// TODO(developer): Use appropriate auth mechanism for your app
const {GoogleAuth} = require('google-auth-library');
const {google} = require('googleapis');
const auth = new GoogleAuth({scopes: 'https://www.googleapis.com/auth/drive'});
const service = google.drive({version: 'v3', auth});
try {
const response = await service.files.copy({
fileId: 'FILE_ID',
requestBody: {
name: 'FILE_COPY_NAME'
}
});
console.log('Copied file ID: ' + response.data.id);
return response.data.id;
} catch (err) {
// TODO(developer): Handle error
console.error(err);
}
}
নিম্নলিখিতগুলি প্রতিস্থাপন করুন:
- FILE_ID : যে ফাইলটি কপি করতে হবে তার আইডি।
- FILE_COPY_NAME : নতুন ফাইলের নাম।
কার্ল
curl -X POST 'https://www.googleapis.com/drive/v3/files/FILE_ID/copy' \
-H 'Authorization: Bearer ACCESS_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"name": "FILE_COPY_NAME"
}'
নিম্নলিখিতগুলি প্রতিস্থাপন করুন:
- FILE_ID : যে ফাইলটি কপি করতে হবে তার আইডি।
- ACCESS_TOKEN : আপনার অ্যাপের OAuth 2.0 টোকেন।
- FILE_COPY_NAME : নতুন ফাইলের নাম।
সীমাবদ্ধতা এবং বিবেচ্য বিষয়
ফাইল কপি করার প্রস্তুতি নেওয়ার সময়, এই সীমাবদ্ধতা ও বিবেচ্য বিষয়গুলো খেয়াল রাখুন:
অনুমতিসমূহ :
-
filesরিসোর্সেরDownloadRestrictionsMetadataঅবজেক্টটি নির্ধারণ করে কে ফাইলটি কপি করতে পারবে। আরও তথ্যের জন্য, ব্যবহারকারীদের আপনার ফাইল ডাউনলোড, প্রিন্ট বা কপি করা থেকে বিরত রাখুন দেখুন। -
capabilities.canCopyফিল্ড রিসোর্সটি নির্ধারণ করে যে ব্যবহারকারী একটি ফাইল কপি করতে পারবে কি না। আরও তথ্যের জন্য, ফাইল ক্যাপাবিলিটিজ বুঝুন দেখুন। - যে ব্যবহারকারী কপিটি তৈরি করেছেন, তিনিই অনুলিপি করা ফাইলটির মালিক হন। মূল ফাইলের অন্য কোনো শেয়ারিং সেটিংস প্রতিলিপি করা হয় না। যদি কপিটি কোনো শেয়ার করা ফোল্ডারে তৈরি করা হয়, তবে এটি সেই ফোল্ডারের অনুমতিগুলো গ্রহণ করে।
- কপি করা ফাইলের মালিকানা পরিবর্তিত হতে পারে এবং কপিটি মূল ফাইলের শেয়ারিং সেটিংস নাও পেতে পারে। এই সেটিংসগুলো রিসেট করার প্রয়োজন হতে পারে।
-
ফাইল ব্যবস্থাপনা :
- কিছু ফাইল, যেমন থার্ড-পার্টি শর্টকাট , কখনোই কপি করা যায় না।
- আপনি একটি ফাইল শুধুমাত্র একটি প্যারেন্ট ফোল্ডারে কপি করতে পারবেন। একাধিক প্যারেন্ট নির্দিষ্ট করা সমর্থিত নয়। যদি
parentsফিল্ডটি নির্দিষ্ট করা না থাকে, তাহলে ফাইলটি সোর্স ফাইল থেকে খুঁজে পাওয়া যায় এমন যেকোনো প্যারেন্টকে উত্তরাধিকার সূত্রে গ্রহণ করবে। - যদিও ফোল্ডার এক ধরনের ফাইল, আপনি একটি ফোল্ডার কপি করতে পারবেন না। এর পরিবর্তে, একটি গন্তব্য ফোল্ডার তৈরি করুন এবং বিদ্যমান ফাইলগুলির
parentsফিল্ডটি সেই গন্তব্য ফোল্ডারে সেট করুন। এরপর আপনি মূল উৎস ফোল্ডারটি মুছে ফেলতে পারেন। - নতুন কোনো ফাইলের নাম নির্দিষ্ট না করা হলে,
copyমেথডটি মূল ফাইলের নামেই একটি ফাইল তৈরি করে। - অতিরিক্ত
copyব্যবহারের ফলে আপনার ড্রাইভ এপিআই কোটার সীমা অতিক্রম হতে পারে। আরও তথ্যের জন্য, ব্যবহারের সীমা দেখুন।
সম্পর্কিত বিষয়
এখানে কয়েকটি পরবর্তী পদক্ষেপ দেওয়া হলো যা আপনি চেষ্টা করতে পারেন:
ফাইল তৈরি বা আপডেট করার সময় ফাইলের ডেটা আপলোড করতে, ‘ফাইলের ডেটা আপলোড করুন’ দেখুন।
একটি নির্দিষ্ট ফোল্ডারে ফাইল তৈরি করতে, "একটি নির্দিষ্ট ফোল্ডারে ফাইল তৈরি করুন" দেখুন।
ফাইল স্থানান্তর করতে, ফোল্ডারগুলোর মধ্যে ফাইল স্থানান্তর দেখুন।
ফাইল মেটাডেটা নিয়ে কাজ করতে, ফাইল মেটাডেটা পরিচালনা দেখুন।
কোনো ফাইল মুছে ফেলার জন্য, ট্র্যাশ অথবা ফাইল ও ফোল্ডার ডিলিট দেখুন।