برنامه ها و سایت های مختلفی وجود دارند که کاربران اینترنت می توانند داخل آنها تولید محتوا کنند و مطالب را به اشتراک بگذارند.شبکه های اجتماعی، انجمن ها ، جت روم ها، و … . داخل همه این برنامه ها مدیران باید با محتواهای نامناسب دست و پنجه نرم کنند.
مثلا مدیران و ناظم ها باید همه مطالبی که توسط کاربران ارسال می شود را قبل از انتشار بررسی کنند تا مطمئن شوند مطابق قوانین برنامه مذکور باشند. این روند بسیار زمانبر است ولی می تواند به صورت اتوماتیک هم انجام شود.
در این مقاله ، به شما نشان خواهیم داد که چگونه محتوا (به صورت اختصاصی تصاویر) را به صورت اتوماتیک و در چهار قدم بوسیله سرویس Cloudinary مدیریت کنید.
Cloudinary یک پلتفرم ابری است که می تواند تصاویر و ویدیوها را مدیریت کند ودارای امکاناتی مثل آپلود سمت کاربر و سرور، تعداد بسیار زیادی ابزارهای ویرایش عکس و ویدیو، شبکه تحویل محتوا (CDN) رایگان، و گزینه های قدرتمند مدیریت asset ها است.
به طور ساده Cloudinary توسعه دهندگان موبایل و وب را قادر می سازد تا همه فایل های چند رسانه ای را بوسیله هر زبانی که دوست دارند به طور سریع و راحت مدیریت کنند و وقت خود را صرف بخش های مهمتر برنامه نمایند.
قدم اول: یک حساب Cloudinary بسازید
برای یک حساب رایگان ثبت نام کنید.
بعد از ثبت نام ، به داشبورد منتقل می شوید که اطلاعات کاربری مختص شما در بالای این صفحه قرار دارد.
اسم Cloud و API Key و API Secret را یادداشت کنید.
قدم دوم: یک سرور Node ایجاد کنید
یک فایل package.json ایجاد کنید:
npm init
ماژول های زیرا را نصب کنید:
npm install express connect-multiparty cloudinary cors body-parser --save
- express : ما به این ماژول برای مسیردهی (Routing) مربوط به API نیاز داریم
- connect-multiparty : برای تجزیه و تحلیل درخواست هایی که از نوع multipart/form-data هستند این ماژول نیاز است
- cloudinary : بسته Node SDK برای Cloudinary
- body-parser : مورد نیاز برای تلفیق بدنه درخواست در آبجکت درخواست express
- cors : برای فعال کردن CORS نیاز است
قدم سوم: فعال کردن افزونه Rekognition AI Moderation
به بخش add-ons داشبورد رفته و روی Rekognition AI Moderation Add-on کلیک کنید و Free Plan را انتخاب کنید.
قدم چهارم: مدیریت محتوای تصاویر
یک فایل server.js در پوشه اصلی ایجاد کنید. همه dependency هایی که نصب کرده ایم require کنید:
const express = require('express'); const app = express(); const multipart = require('connect-multiparty'); const cloudinary = require('cloudinary'); const cors = require('cors'); const bodyParser = require('body-parser'); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.use(cors()); const multipartMiddleware = multipart();
حالا Cloudinary را تنظیم کنید:
cloudinary.config({ cloud_name: 'xxxxxxxx', api_key: 'xxxxxxxx', api_secret: 'xxxxxxx' });
و حالا xxxxxx
را با مقادیر اصلی که از داشبورد برداشته اید، جایگزین کنید.
یک route برای آپلود بنام /upload
اضافه کنید.
app.post('/upload', multipartMiddleware, function(req, res) { // Upload to Cloudinary cloudinary.v2.uploader.upload(req.files.image.path, // Specify Moderation { moderation: "aws_rek" }, function(error, result) { console.log(result); res.json(result); }); });
حالا وقتی کاربری درخواست از نوع POST به روت /upload
فرستاد، فایل عکس از درخواست HTTP گرفته می شود، به Cloudinary آپلود می شود، به Amazon Rekognition برای مدیریت ارسال می شود و پاسخ بررسی محتوای عکس بسته به اینکه رد شده یا تایید ، برگشت داده می شود.
این مسیر واقعا ساده است! حالا اجازه دهید آن را به صورت عملی با Postman تست کنیم.
مطمئن شوید سرور در حال اجرا است:
nodemon server.js
یک درخواست از نوع POST بسازید و سعی کنید تصاویر مختلف اگر شد +18 آپلود کنید.
پاسخ JSON برگشت داده شده
حالا پاسخ json برگشتی را بررسی کنید. عکس ارسالی آپلود نشده و reject شده است زیرا حاوی تصاویر نامناسب بوده است. به ضریب اطمینان از نتیجه هم نگاه کنید. بسیار بالاست .
پس کاربران هیچ گاه نمی توانند تصاویر نامناسب در سایت ما آپلود کنند.
توجه: دو نوع دسته بندی برای رد تصاویر وجود دارد. برای اطلاعات بیشتر در این مورد به این آدرس مراجعه کنید.
نتیجه گیری
دیدیم که بررسی اتوماتیک محتوای فایل های چند رسانه ای که کاربران در سایت ما آپلود می کنند، زیاد هم سخت نیست.مخصوصا اگر سایت پربازدیدی نداشته باشید پلن رایگان می تواند پاسخگوی نیازهای شما باشد. با کارهایی مثل share کردن نیز می توانید فضا و پهنای باند به پلن تان اضافه کنید. همچنین حتما نیاز نیست با Node.js از این سرویس استفاده کنید. می توانید از زبان هایی مثل PHP, Python, Java, Ruby و …هم به راحتی استفاده کنید.