Google is committed to advancing racial equity for Black communities. See how.
This page was translated by the Cloud Translation API.
Switch to English

ক্লাউড স্টোরেজ ট্রিগার করে

ক্লাউড স্টোরেজে ফাইল এবং ফোল্ডারগুলি আপলোড, আপডেট করা বা মুছে ফেলার প্রতিক্রিয়া হিসাবে আপনি কোনও ফাংশন ট্রিগার করতে পারেন।

ক্লাউড স্টোরেজে যখন চিত্র ফাইলগুলি আপলোড করা হয় তখন এই পৃষ্ঠার উদাহরণগুলি একটি নমুনা ফাংশনের ভিত্তিতে তৈরি হয় trig এই নমুনা ফাংশনটি দেখায় যে কীভাবে ইভেন্টের বৈশিষ্ট্যগুলি অ্যাক্সেস করা যায়, মেঘ ফাংশনগুলির উদাহরণে কোনও ফাইল কীভাবে ডাউনলোড করা যায় এবং ক্লাউড স্টোরেজ ইভেন্টগুলি পরিচালনা করার অন্যান্য মৌলিক বিষয়গুলি।

ব্যবহারের ক্ষেত্রে আরও উদাহরণের জন্য দেখুন ক্লাউড ফাংশনগুলির সাথে আমি কী করতে পারি?

ক্লাউড স্টোরেজ পরিবর্তনগুলিতে কোনও ফাংশন ট্রিগার করুন

ব্যবহার করুন functions.storage যে হ্যান্ডলগুলি ক্লাউড স্টোরেজ ঘটনা একটি ফাংশন তৈরি করুন। আপনি কোনও নির্দিষ্ট মেঘ স্টোরেজ বালতিতে আপনার ফাংশনটি স্কোপ করতে চান বা ডিফল্ট বালতিটি ব্যবহার করতে চান তার উপর নির্ভর করে, নিম্নলিখিতগুলির একটি ব্যবহার করুন:

  • ডিফল্ট ক্লাউড স্টোরেজ বালতিতে অবজেক্ট পরিবর্তনের জন্য functions.storage.object()
  • একটি নির্দিষ্ট বালতিতে অবজেক্টের পরিবর্তনের জন্য শোনার জন্য functions.storage.bucket('bucketName').object()

উদাহরণস্বরূপ, থাম্বনেল জেনারেটরের নমুনাটি প্রকল্পের জন্য ডিফল্ট বালতিতে স্কোপ করা হয়:

exports.generateThumbnail = functions.storage.object().onFinalize(async (object) => {
  // ...
});

ক্লাউড স্টোরেজ এই ইভেন্টগুলিকে সমর্থন করে:

  • onArchive কেবল তখনই প্রেরণ করা হয় যখন কোনও বালতি অবজেক্ট সংস্করণ সক্ষম করে। এই ইভেন্টটি ইঙ্গিত করে যে কোনও বস্তুর লাইভ সংস্করণটি সংরক্ষণাগারভুক্ত সংস্করণে পরিণত হয়েছে, হয় এটি সংরক্ষণাগারভুক্ত হওয়ার কারণে বা একই নামের কোনও অবজেক্টের আপলোড দ্বারা এটি ওভাররাইট করা হয়েছিল।
  • onDelete পাঠানো হয়েছে যখন কোনও বস্তু স্থায়ীভাবে মুছে ফেলা হবে। এর মধ্যে এমন বস্তু অন্তর্ভুক্ত রয়েছে যা ওভাররাইট করা হয় বা বালতির লাইফেসাইকেল কনফিগারেশনের অংশ হিসাবে মুছে ফেলা হয়। সঙ্গে বাকেট জন্য বস্তু সংস্করণ সক্ষম থাকে তবে এই পাঠানো যখন একটি বস্তু (দেখুন সংরক্ষন করা হয় করা হয় onArchive ), এমনকি যদি মহাফেজখানায় মাধ্যমে ঘটে storage.objects.delete পদ্ধতি।
  • onFinalize পাঠানো হয় যখন onFinalize একটি নতুন অবজেক্ট (বা বিদ্যমান অবজেক্টের নতুন প্রজন্ম) সফলভাবে তৈরি হয়। এর মধ্যে বিদ্যমান অবজেক্টটি অনুলিপি করা বা পুনর্লিখন অন্তর্ভুক্ত রয়েছে। একটি ব্যর্থ আপলোড এই ইভেন্টটিকে ট্রিগার করে না।
  • onMetadataUpdate প্রেরিত যখন একটি বিদ্যমান বস্তুর মেটাডেটা পরিবর্তন হয়।

on onFinalize জন্য উপরের মত ইভেন্ট হ্যান্ডলারের মধ্যে ইভেন্টটি সেট করুন।

ক্লাউড স্টোরেজ অবজেক্ট বৈশিষ্ট্য অ্যাক্সেস করুন

ক্লাউড ফাংশনগুলি অনেকগুলি ক্লাউড স্টোরেজ অবজেক্টের বৈশিষ্ট্যগুলি যেমন ফাইল এবং আপডেট করা ফাইলের জন্য size এবং contentType হিসাবে প্রকাশ করে। যখনই অবজেক্টের মেটাডেটাতে কোনও পরিবর্তন আসে তখনই 'মেটাজেনারেশন' বৈশিষ্ট্যটি বাড়ানো হয়। নতুন অবজেক্টের জন্য, metageneration মান 1

const fileBucket = object.bucket; // The Storage bucket that contains the file.
const filePath = object.name; // File path in the bucket.
const contentType = object.contentType; // File content type.
const metageneration = object.metageneration; // Number of times metadata has been generated. New objects have a value of 1.

থাম্বনেইল প্রজন্মের নমুনা এই ফাংশনটি ফিরে আসে এমন প্রস্থানগুলি সনাক্ত করতে এই বৈশিষ্ট্যগুলির কয়েকটি ব্যবহার করে:

// Exit if this is triggered on a file that is not an image.
if (!contentType.startsWith('image/')) {
  return functions.logger.log('This is not an image.');
}

// Get the file name.
const fileName = path.basename(filePath);
// Exit if the image is already a thumbnail.
if (fileName.startsWith('thumb_')) {
  return functions.logger.log('Already a Thumbnail.');
}

ডাউনলোড করুন, রূপান্তর করুন এবং একটি ফাইল আপলোড করুন

কিছু ক্ষেত্রে, ক্লাউড স্টোরেজ থেকে ফাইলগুলি ডাউনলোড করা প্রয়োজন হতে পারে না। তবে, ক্লাউড স্টোরেজে থাকা কোনও ফাইল থেকে থাম্বনেইল চিত্র তৈরি করার মতো নিবিড় কাজগুলি সম্পাদন করার জন্য আপনাকে ফাংশনগুলির জন্য ফাইলগুলি ডাউনলোড করতে হবে — অর্থাৎ আপনার কোড চালানো ভার্চুয়াল মেশিন।

ক্লাউড স্টোরেজে সহজেই অবজেক্টগুলি ডাউনলোড এবং পুনরায় আপলোড করতে, npm install --save @google-cloud/storage ব্যবহার করে গুগল ক্লাউড স্টোরেজ প্যাকেজটি npm install --save @google-cloud/storage এবং এটি আমদানি করুন। নমুনায় থাম্বনেইল প্রক্রিয়াজাতকরণের মতো বাহ্যিক প্রক্রিয়াগুলি পরিচালনা করার জন্য জাভাস্ক্রিপ্ট প্রতিশ্রুতি ব্যবহার করার জন্য, child-process-promise আমদানি করুন:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp()
const spawn = require('child-process-promise').spawn;
const path = require('path');
const os = require('os');
const fs = require('fs');

আপনার ক্লাউড ফাংশনগুলির দৃষ্টান্তে অস্থায়ী ডিরেক্টরিতে একটি ফাইল ডাউনলোড করতে gcs.bucket.file(filePath).download ডাউনলোড ব্যবহার করুন। এই অবস্থানটিতে, আপনি প্রয়োজন মতো ফাইলটি প্রক্রিয়া করতে পারেন এবং তারপরে ক্লাউড স্টোরেজে আপলোড করতে পারেন। অ্যাসিঙ্ক্রোনাস কাজগুলি সম্পাদন করার সময়, আপনার কলব্যাকটিতে জাভাস্ক্রিপ্ট প্রতিশ্রুতি ফিরিয়ে দিয়েছেন তা নিশ্চিত করুন।

উদাহরণ: চিত্র রূপান্তর

ক্লাউড ফাংশনগুলি ImageMagick নামে একটি চিত্র-প্রক্রিয়াজাতকরণ প্রোগ্রাম সরবরাহ করে যা গ্রাফিকাল চিত্রের ফাইলগুলিতে ম্যানিপুলেশন সম্পাদন করতে পারে। নীচে আপলোডকৃত চিত্র ফাইলের জন্য কীভাবে থাম্বনেইল চিত্র তৈরি করবেন তার একটি উদাহরণ:

// Download file from bucket.
const bucket = admin.storage().bucket(fileBucket);
const tempFilePath = path.join(os.tmpdir(), fileName);
const metadata = {
  contentType: contentType,
};
await bucket.file(filePath).download({destination: tempFilePath});
functions.logger.log('Image downloaded locally to', tempFilePath);
// Generate a thumbnail using ImageMagick.
await spawn('convert', [tempFilePath, '-thumbnail', '200x200>', tempFilePath]);
functions.logger.log('Thumbnail created at', tempFilePath);
// We add a 'thumb_' prefix to thumbnails file name. That's where we'll upload the thumbnail.
const thumbFileName = `thumb_${fileName}`;
const thumbFilePath = path.join(path.dirname(filePath), thumbFileName);
// Uploading the thumbnail.
await bucket.upload(tempFilePath, {
  destination: thumbFilePath,
  metadata: metadata,
});
// Once the thumbnail has been uploaded delete the local file to free up disk space.
return fs.unlinkSync(tempFilePath);

এই কোড executes ImageMagick কমান্ড লাইন প্রোগ্রাম convert ইমেজ অস্থায়ী ডাইরেক্টরি সংরক্ষিত একটি 200x200 থাম্বনেল তৈরি করার জন্য, তাহলে এটি ফিরে ক্লাউড স্টোরেজ আপলোড করে।

আরও উদাহরণ এক্সপ্লোর করুন

ট্রান্সকোডিং চিত্রগুলি , মডারেটিং সামগ্রী , এক্সআইএফ মেটাডেটা আহরণ সহ সাধারণ মিডিয়া ট্রান্সফর্মেশন ফাংশনের আরও উদাহরণ। উদাহরণগুলির সম্পূর্ণ তালিকা গিটহাবটিতে উপলব্ধ।

আরও তথ্যের জন্য সম্পূর্ণ গুগল ক্লাউড স্টোরেজ ট্রিগার ডকুমেন্টেশন দেখুন।