সম্প্রতি, আমরা আলোচনা করেছি কিভাবে ডেভেলপাররা ফটোশপ API ব্যবহার করতে পারে। সেই পোস্টে, আমরা একটি সাধারণ Node.js স্ক্রিপ্ট শেয়ার করেছি যেটি Azure-এ সঞ্চিত একটি ফাইল ব্যবহার করে API-কে কল করবে।
এটি সহজ ছিল - একটি অ্যাক্সেস টোকেন পান, একটি ইনপুট নথির সাথে একটি API কাজ শুরু করুন, সমাপ্তির জন্য পোল করুন এবং তারপরে ফলাফল দেখুন৷
সহজ ভাল যদিও এর মানে হল কাস্টম ওয়ার্কফ্লোতে একীভূত করা সহজ। আজকের পোস্টে আমরা সেটাই করব।
আমাদের কর্মপ্রবাহ কি করতে যাচ্ছে তা নির্ধারণ করে শুরু করা যাক। কল্পনা করুন আমরা একটি ক্লাউড স্টোরেজ প্রদানকারী ব্যবহার করছি, এই ক্ষেত্রে, ড্রপবক্স, ফটো সংরক্ষণ করতে। আমাদের ওয়ার্কফ্লো এই ফোল্ডারটি নিরীক্ষণ করতে যাচ্ছে এবং নতুন ছবি যুক্ত হলে ট্রিগার করবে।
ছবি যোগ করা হলে, আমরা ফাইলটি ধরব এবং এটিকে একটি এন্ডপয়েন্টে পাঠাব যা লাইটরুম "অটোটোন" বৈশিষ্ট্যটি চালায়। এই বৈশিষ্ট্যটি ফটোতে এক্সপোজার, বৈসাদৃশ্য এবং অন্যান্য সমস্যাগুলি সংশোধন করার চেষ্টা করে।
একটি উদাহরণ হিসাবে (যেটি আমরা ডক্স থেকে চুরি করেছি), এখানে সংশোধনের প্রভাব দেখানোর আগে এবং পরে রয়েছে:
একবার API সম্পন্ন হলে, আমরা ফলাফলটি ড্রপবক্সের অন্য ফোল্ডারে সংরক্ষণ করব। আমরা আসলটি ওভাররাইট করতে পারি, তবে সম্ভবত, লোকেরা উভয় কপি চাইবে যাতে তারা কোনটি পছন্দ করে তা দেখতে তারা একটি চূড়ান্ত পরীক্ষা করতে পারে।
আমাদের কর্মপ্রবাহের জন্য, আমরা Pipedream ব্যবহার করব। পাইপড্রিম হল জেনেরিক ওয়ার্কফ্লো তৈরির জন্য একটি কম-কোড/নো-কোড সমাধান। এটি মাইক্রোসফ্ট পাওয়ারঅটোমেট এবং ওয়ার্কফ্রন্ট ফিউশনের মতো একই জায়গায় রয়েছে। (এবং আপনি সেই প্ল্যাটফর্মগুলিতেও শীঘ্রই আমাদের কাছ থেকে উদাহরণগুলি দেখার আশা করতে পারেন।)
Pipedream সত্যিই একটি প্রকল্পের "প্লাগ এবং প্লে" এর আরও কঠিন, এমনকি বিরক্তিকর দিকগুলি তৈরি করে বিকাশকারীদের সাহায্য করে। একটি উদাহরণ হিসাবে, একটি ওয়ার্কফ্লো, একটি ট্রিগার কী শুরু করে তা নির্ধারণ করার সময়, Pipedream পূর্ব-নির্মিত কোড ব্লকের একটি বিশাল সেট নিয়ে আসে।
যখন আমরা প্রদর্শন করা শুরু করি যে আমরা কীভাবে আমাদের কর্মপ্রবাহ তৈরি করেছি, তখন আপনি তা কার্যকরভাবে দেখতে পাবেন। Pipedream এর একটি বিনামূল্যের স্তর রয়েছে, তাই আপনারা যারা পড়ছেন তারা সাইন আপ করার পরে এটি করতে পারেন।
আপনি যদি আগে কখনো Pipedream ব্যবহার না করে থাকেন তবে এটি কীভাবে কাজ করে তার একটি ভূমিকার জন্য তাদের চমৎকার Pipedream বিশ্ববিদ্যালয়টি দেখুন। তাদের চমৎকার নথিও রয়েছে। অবশেষে, আপনার বন্ধুত্বপূর্ণ লেখক এখানে Pipedream সম্পর্কেও লিখেছেন ।
পথ যে আউট সঙ্গে, এর বিল্ডিং পেতে!
পাইপড্রিম ওয়ার্কফ্লো একটি ট্রিগার দিয়ে শুরু হয় যা "ইভেন্ট" প্রতিনিধিত্ব করে যা আমাদের প্রক্রিয়া শুরু করা উচিত। Pipedream-এর অনেকগুলি, এই ট্রিগারগুলির মধ্যে অনেকগুলি অন্তর্নির্মিত (এবং আপনি নিজের লিখতে পারেন), এবং ভাগ্যক্রমে, ড্রপবক্স ট্রিগারে একটি "নতুন ফাইল" সমর্থিত:
"নতুন ফাইল" ট্রিগার নির্বাচন করার পরে, এটি কনফিগার করার জন্য আপনাকে একটি সাধারণ ইন্টারফেস দেওয়া হবে:
উপরে প্রমাণীকরণ দিক আছে. এখানে, আপনি আপনার ড্রপবক্স অ্যাকাউন্টে Pipedream সংযোগ করতে পারেন। সর্বোপরি, আপনি একবার এটি একবার করে ফেললে, আপনি একাধিক ওয়ার্কফ্লোতে সেই সংযোগটি পুনরায় ব্যবহার করতে পারেন।
পরবর্তী, পাথ মান একটি নোট করুন. আপনি এখানে টাইপ করতে পারেন, এবং Pipedream আপনার অ্যাকাউন্টের উপর ভিত্তি করে স্বয়ংসম্পূর্ণ করার চেষ্টা করবে, বা কেবল একটি পাথ লিখবে। আমরা /PSAPI_Input
ফোল্ডার হিসেবে ব্যবহার করতে যাচ্ছি যেটি ছবি পাওয়ার আশা করে।
পরবর্তী দুটি সেটিংস উপেক্ষা করা যেতে পারে, কিন্তু চূড়ান্ত সেটিং, Include Link
, সত্যে টগল করা উচিত৷ আমাদের সেই লিঙ্কটির প্রয়োজন হবে যাতে আমরা API কে বলতে পারি কিভাবে ডেটা আনতে হয়।
এখানে আমাদের কর্মপ্রবাহের জন্য চূড়ান্ত কনফিগার করা ট্রিগার রয়েছে:
রিক্যাপ করার জন্য, এই মুহুর্তে, আমরা আমাদের ড্রপবক্স অ্যাকাউন্টের একটি নির্দিষ্ট ফোল্ডারে একটি ফাইল যুক্ত হওয়ার সাথে সাথে স্বয়ংক্রিয়ভাবে ফায়ার করার জন্য ওয়ার্কফ্লোকে কনফিগার করেছি।
যখন ফটোশপ এপিআই চলে, তখন এটি ন্যূনতম দুটি জিনিস আশা করে - একটি ইনপুট URL এবং একটি আউটপুট URL৷ মূলত, কোথায় এর ইনপুট পড়তে হবে এবং ফলাফল কোথায় সংরক্ষণ করতে হবে।
আমাদের ইনপুট ড্রপবক্সে যোগ করা নতুন ফাইল হতে যাচ্ছে। আমাদের আউটপুট Lightroom দ্বারা সংশোধন করা ছবির অবস্থান হতে যাচ্ছে.
এটি সমর্থন করার জন্য, আমাদের ড্রপবক্সকে একটি বিশেষ URL তৈরি করতে বলতে হবে যা ডেটা সঞ্চয় করতে ব্যবহার করা যেতে পারে। Pipedream-এ অনেকগুলি ড্রপবক্স অ্যাকশন অন্তর্নির্মিত আছে কিন্তু দুর্ভাগ্যবশত, এই বিশেষটি নেই৷
ভাগ্যক্রমে, Pipedream আপনাকে কাস্টম কোড সহ একটি ধাপ তৈরি করতে দেয় যেখানে এটি ইতিমধ্যে আপনার জন্য প্রমাণীকরণ পরিচালনা করেছে। মনে রাখবেন যে ট্রিগারে, আমরা একটি বিদ্যমান ড্রপবক্স অ্যাকাউন্ট নির্দিষ্ট করেছি। যেহেতু আমরা এটি করেছি, আমরা তারপর কোড লিখতে পারি এবং পাইপড্রিমকে প্রমাণীকরণ পরিচালনা করতে পারি।
ড্রপবক্স এপিআই- এর সাথে পরামর্শ করে, আমরা get_temporary_upload_link এন্ডপয়েন্ট খুঁজে পাই যা আমাদের প্রয়োজন।
Pipedream-এ, আমরা একটি নতুন ধাপ যোগ করি এবং "Node.js-এ যেকোনো ড্রপবক্স API ব্যবহার করুন" নির্বাচন করুন। এটি আমাদের বয়লারপ্লেট কোড দেয় যা একটি নমুনা শেষ পয়েন্টে আঘাত করে:
সবচেয়ে গুরুত্বপূর্ণ - নোট করুন প্রমাণীকরণ তথ্য স্বয়ংক্রিয়ভাবে প্রদান করা হয়। তারপরে আমাদের যা করতে হবে তা হল এন্ডপয়েন্ট সম্পাদনা করা এবং আমাদের ইনপুট সেট করা:
মনে রাখবেন আমরা একটি পাথ ব্যবহার করছি যা একটি ভিন্ন ফোল্ডার, /PSAPI_Output
। এর পরের মান, ${steps.trigger.event.name}
, আমাদের ওয়ার্কফ্লোতে আগের থেকে তথ্য ব্যবহার করে দেখায়, বিশেষ করে সেই ইভেন্টের ফাইলের নাম যা আমাদের ওয়ার্কফ্লোকে ট্রিগার করেছে এবং ফাইলের নাম।
কোডটি API কলের ফলাফল প্রদান করে শেষ হয়, যা আমাদের ক্ষেত্রে একটি বিশেষ URL হতে চলেছে যা আমরা আমাদের API কলের সাথে ব্যবহার করতে পারি।
আমাদের পূর্ববর্তী ব্লগ পোস্টে , আমরা আলোচনা করেছি কিভাবে ফটোশপ API-এর জন্য শংসাপত্রগুলি পেতে হয় এবং কীভাবে একটি অ্যাক্সেস টোকেন পেতে কোডে সেগুলি ব্যবহার করতে হয়। Pipedream-এ, কাস্টম কোড চালানোর জন্য আমরা আমাদের ওয়ার্কফ্লোতে একটি ধাপ যোগ করতে পারি।
আপনি আগের ধাপে দেখেছেন যখন আমরা ড্রপবক্স এপিআই হিট করি। Pipedream Node.js এবং Python উভয়কেই সমর্থন করে তাই আপনি সেখানে কয়েকটি বিকল্প পেয়েছেন। আমরা একটি নতুন কোড ধাপ যোগ করব এবং এর নাম রাখব getAccessToken
।
এই পদক্ষেপটি একটি JWT তৈরি করতে এবং একটি অ্যাক্সেস টোকেনের জন্য বিনিময় করতে আমাদের শংসাপত্রগুলি ব্যবহার করার জন্য দায়ী হবে।
সেই আগের ব্লগ পোস্টে, কোডটি @adobe/jwt-auth প্যাকেজ ব্যবহার করে প্রক্রিয়াটিকে সহজ করে দিয়েছে। যাইহোক, এই প্যাকেজটি একটি ES6 আমদানি হিসাবে কাজ করে না যা Pipedream সমর্থন করে। ভাগ্যক্রমে, আমরা অন্য NPM প্যাকেজ, jsonwebtoken- এ অদলবদল করতে পারি। আসুন কোডটি দেখে নেওয়া যাক:
তাই এখানে কিছু জিনিস. প্রথমত, প্রতিটি নোড পাইপড্রিম কোড ধাপের মতো একটি ফর্ম ব্যবহার করে:
run
ফাংশনটি স্বয়ংক্রিয়ভাবে বলা হয়, এবং পূর্ববর্তী যেকোনো ধাপ থেকে ডেটা পাস করা হয় এবং সেইসাথে একটি হ্যান্ডলার ( $
) আমাদের প্রয়োজন হবে না এমন অন্যান্য অপারেশনের জন্য। মূলত, আমরা আমাদের আমদানিকে উপরে রাখব এবং আমাদের যুক্তি ভিতরে রাখব।
আপনি পরিবেশ থেকে ভেরিয়েবলের একটি সেটকে অনুলিপি করা দেখতে পাচ্ছেন — আশ্চর্যজনক নয় — Pipedream আমাদের কাস্টম পরিবেশের ভেরিয়েবলকেও সংজ্ঞায়িত করতে দেয়।
কোডের পরবর্তী ব্লক আমাদের JWT তৈরি করে। এটি বেশিরভাগই বয়লারপ্লেট, তবে jwtOptions
অংশে বিশেষ মনোযোগ দিন। এই ভেরিয়েবল, "https://ims-na1.adobelogin.com/s/ent_ccas_sdk": true,
, যা আমাদের টোকেনের সুযোগ নির্ধারণ করে এবং API-এর সাথে কাজ করার জন্য প্রয়োজনীয়।
JWT তৈরি হওয়ার পরে, এটি একটি সাধারণ Adobe এন্ডপয়েন্টে পাঠানো যেতে পারে একটি অ্যাক্সেস টোকেন তৈরি করতে। যুক্তির চূড়ান্ত বিট হল সেই টোকেনটি ফেরত দেওয়া। আপনি যদি পূর্ববর্তী ধাপে মনে রাখেন, আমরা যা কিছু ফেরত দিয়েছি তা পরে ব্যবহার করা যেতে পারে। আপনি শীঘ্রই এটি কার্যকর দেখতে পাবেন।
এখন, ব্যবসায় নামবার সময়। আমাদের ট্রিগার আমাদের নতুন ছবির একটি লিঙ্ক দিয়েছে। পরবর্তী কোড ধাপে চূড়ান্ত ফলাফল আপলোড করার জন্য আমাদের জন্য একটি লিঙ্ক তৈরি করা হয়েছে। আমরা তারপর একটি অ্যাক্সেস টোকেন পেয়েছিলাম. আমরা প্রক্রিয়া শুরু করার জন্য প্রয়োজনীয় সবকিছু পেয়েছি।
আবার, আমরা আমাদের ওয়ার্কফ্লোতে একটি Node.js ধাপ যোগ করব। এখানে এটা কর্ম আছে.
Autotone API-এর জন্য কয়েকটি পরামিতি প্রয়োজন, এই ক্ষেত্রে, একটি ইনপুট এবং আউটপুট মান। আমাদের ক্ষেত্রে, আমরা ট্রিগার থেকে লিঙ্কে পাস করি এবং আগে তৈরি করা বিশেষ আপলোড URL।
এবং এটাই! এই কলের ফলাফল হল কাজের একটি লিঙ্ক যা আমরা শেষে ফিরে আসি।
ঠিক আছে, ঠিক কিছুই না, কিন্তু এখানে একটি আকর্ষণীয় প্রশ্ন। এই সম্পূর্ণ ওয়ার্কফ্লো কোনো মানুষের মিথস্ক্রিয়া ছাড়াই স্বয়ংক্রিয়ভাবে চলে। পূর্ববর্তী পদক্ষেপটি একটি প্রক্রিয়া শুরু করে যা সম্পন্ন হলে ফলাফলটি ড্রপবক্সে সংরক্ষণ করবে। আমাদের কি আর কিছু করার দরকার আছে? আসলে তা না.
এটা একেবারে সম্ভব API কিছু কারণে ব্যর্থ হতে পারে. এটা সম্ভব অন্য কিছু পাশাপাশি ভুল হতে পারে. এটাও সম্ভব যে আমরা পরিবর্তন সম্পর্কে কাউকে সতর্ক করতে চাই, সম্ভবত ইমেলের মাধ্যমে। সত্যি, এটা আপনার উপর নির্ভর করে.
আমাদের নমুনা ওয়ার্কফ্লোতে, আমরা কেবল কাজটি পরীক্ষা করার এবং এটি শেষ হওয়ার জন্য অপেক্ষা করার সিদ্ধান্ত নিয়েছি। এখানে সেই কোড ধাপ, এবং এটি আমাদের আগের ব্লগ পোস্টের মতই। আমরা কাজটি পরীক্ষা করি, অপেক্ষা করি এবং আবার এটি পরীক্ষা করি।
এখানেই আমরা ওয়ার্কফ্লো শেষ করি, কিন্তু কাজের ফলাফল চেক করতে এবং কিছু করার জন্য আমরা যুক্তি যোগ করতে পারি এবং সম্ভবত করা উচিত। সম্ভবত একটি ভাল ফলাফলের জন্য, আমরা কিছুই করি না, কিন্তু ভুল হলে, আমরা একটি ইমেল পাঠাই। (এবং যাইহোক, Pipedream ইমেল পাঠানো হাস্যকরভাবে সহজ করে তোলে।)
যদিও চমৎকার কি তা হল যে আমরা পরে সিদ্ধান্ত নিতে পারি।
Pipedream এর একটি সত্যিই চমৎকার বৈশিষ্ট্য হল যে এটি ওয়ার্কফ্লো চালানোর সময় পরীক্ষা করা সহজ করে তোলে। উদাহরণস্বরূপ, এখানে অতীতের মৃত্যুদণ্ডের একটি তালিকা রয়েছে:
আপনি সেখানে যে ত্রুটিগুলি দেখছেন তা আমার কাছ থেকে এসেছে API এর সাথে খেলতে এবং এটি কীভাবে কাজ করে তা খুঁজে বের করে। আপনি তাদের যে কোনোটিতে ক্লিক করতে পারেন এবং এটি জুড়ে প্রবাহিত ডেটা দেখতে পারেন।
ওয়ার্কফ্লো ঠিক রেখে, আমরা একটি ড্রপবক্স ফোল্ডারে একটি নতুন ছবি আপলোড করেছি, একটি খোলা ট্যাবে ওয়ার্কফ্লো ফায়ারিং দেখেছি, এবং শেষ হয়ে গেলে, ফলাফল পরীক্ষা করেছি৷ এখানে আগে:
এবং এখানে পরে:
ফলাফল crisper, এবং একেবারে একটি উন্নতি! আপনি এখানে আমার কর্মপ্রবাহের নিজস্ব অনুলিপি তৈরি করতে পারেন: https://pipedream.com/new?h=tch_3xxfJA । আপনি যদি আরও জানতে চান, আমাদের ডক্স দেখুন, এবং আপনি যা তৈরি করেছেন তা শেয়ার করুন!
এছাড়াও এখানে প্রকাশিত