Skip to content

ফাইল ও মিডিয়া

আপনার অ্যাপ থেকে ফাইল ও মিডিয়া সংরক্ষণ করুন। প্রতিটি ফাইল একটি স্থায়ী public URL পায়।

Proyecta-তে মিডিয়া দুটি স্তরে কাজ করে। বেশিরভাগ অ্যাপ built-in CMS মিডিয়া সুবিধা ব্যবহার করে — AI আপনার admin panel ও ফর্মে ইমেজ এবং ফাইল আপলোড স্বয়ংক্রিয়ভাবে সংযুক্ত করে দেয়। এর নিচে একটি নিম্ন-স্তরের Files API আছে, যা প্রয়োজন হলে সরাসরি নিয়ন্ত্রণ দেয়। উভয়ই CDN-backed object storage-এ সংরক্ষিত হয় এবং একটি স্থায়ী public URL ফিরিয়ে দেয়।

চ্যাট ইনপুট সরাসরি ইমেজ গ্রহণ করে — একটি স্ক্রিনশট পেস্ট করুন বা ইনপুটে একটি ইমেজ ফাইল ড্র্যাগ করুন। সমর্থিত ফরম্যাট: PNG, JPEG, WebP, GIF, AVIF। সর্বোচ্চ আকার: প্রতিটি ইমেজের জন্য 10 MB

চ্যাট সংযুক্তি বার্তার অংশ, আপনার ফাইল লাইব্রেরির নয়। স্থায়ী সংরক্ষণের জন্য built-in মিডিয়া আপলোড বা Files API ব্যবহার করুন।

Built-in মিডিয়া আপলোড (CMS মিডিয়া সুবিধা)

Section titled “Built-in মিডিয়া আপলোড (CMS মিডিয়া সুবিধা)”

বেশিরভাগ অ্যাপ সরাসরি Files API ব্যবহার করে না — মিডিয়া হলো একটি built-in CMS সুবিধা। অ্যাপ টেমপ্লেটে @/hooks/useContent-এ দুটি আপলোড hook আছে, এবং AI সেগুলো আপনার UI-তে সংযুক্ত করে দেয়। আপনি যা চান তা বর্ণনা করুন (“আমার পণ্যে একটি ইমেজ ফিল্ড”, “আমার contact ফর্মে একটি ফাইল আপলোড”) এবং Proyecta সঠিকটি ব্যবহার করে:

Hook কোথায় ব্যবহার হয় Endpoint আকার সীমা
useAssetUpload() Admin মিডিয়া লাইব্রেরি — admin panel-এর content editor-এ asset picker-কে সাপোর্ট করে POST /v1/public/files 10 MB
useFormFileUpload() Public ফর্ম ফাইল — <FormBlock/> ফাইল ফিল্ডে দর্শকদের আপলোড (রসিদ, ছবি) POST /v1/public/uploads 5 MB

উভয় hook একটি স্থায়ী public url ফিরিয়ে দেয়, যা আপনি content entry (admin) বা form submission (public)-এ সংরক্ষণ করেন। কিছু গুরুত্বপূর্ণ বিষয়:

  • উভয় সীমাই কোডে enforce করা হয়, plan দ্বারা নয় — admin মিডিয়ার জন্য 10 MB, public ফর্ম ফাইলের জন্য 5 MB।
  • গৃহীত ফরম্যাট শুধুমাত্র ইমেজ (SVG ছাড়া) এবং PDF। নিরাপত্তার কারণে SVG প্রত্যাখ্যান করা হয়; বড় ইমেজ আপলোডের আগে স্বয়ংক্রিয়ভাবে ছোট করা হয়।
  • এগুলো আপনি সরাসরি কল করবেন না — AI মাউন্ট করে দেয়। নিম্ন-স্তরের বা কাস্টম ফাইল হ্যান্ডলিংয়ের জন্য নিচের Files API ব্যবহার করুন।

প্রতিটি published Proyecta অ্যাপ ফাইল সংরক্ষণ ও পরিবেশন করতে পারে। অ্যাপের পেজ থেকে এটি একটিমাত্র call — signed-upload-এর বহু-ধাপের ঝামেলা আপনার হয়ে সামলে নেওয়া হয়:

import * as platform from '@/lib/platformClient.ts';
// Upload straight from a file input — one call, no signed-URL juggling
async function onPick(file: File) {
const asset = await platform.assetDirectUpload({
blob: file,
filename: file.name,
mimeType: file.type,
});
console.log(asset.url); // permanent public URL
}
// List what's stored
const { assets, hasMore } = await platform.assetList({ limit: 20 });
// Remove one
await platform.assetDelete(asset.id);

Private ফাইল। visibility: 'private' পাঠালে ফাইলটি public bucket-এর বাইরে সংরক্ষিত হয়, কোনো স্থায়ী URL ছাড়াই। পরিবর্তে এটি পড়ুন একটি স্বল্পমেয়াদি লিঙ্ক দিয়ে:

const { url, expiresAt } = await platform.assetSignedUrl(asset.id, { variant: 'thumbnail' });

যা অনুমান করা যাবে না এমন সবকিছুর জন্য private + signed URL ব্যবহার করুন — কাস্টমারের আপলোড, পরিচয়পত্র, পেইড ডাউনলোড।

আমার অ্যাপে ফাইল কীভাবে আপলোড হয়?

Section titled “আমার অ্যাপে ফাইল কীভাবে আপলোড হয়?”

ফাইল আপলোড AI builder-এর মাধ্যমে পরিচালিত হয়। AI-কে আপলোড flow তৈরি করতে বলুন:

  • "ব্যবহারকারীদের একটি profile photo আপলোড করতে এবং Proyecta Files-এ সংরক্ষণ করতে দাও"
  • "একটি image gallery যোগ করো যেখানে sign-in করা ব্যবহারকারীরা তাদের ছবি আপলোড ও দেখতে পারবে"
  • "অর্ডারে PDF invoice সংযুক্ত করতে দাও"

AI আপনার অ্যাপ কোডে আপলোড সংযুক্ত করে দেয় এবং ফিরে আসা public URL রেফারেন্স করে।

ফাইলের URL কি public?

হ্যাঁ। Files API থেকে ফেরত আসা যেকোনো ফাইলের একটি স্থায়ী public URL থাকে। এমন কিছু আপলোড করবেন না যা আপনি প্রকাশ করতে চান না।

একটি ফাইল কত বড় হতে পারে?

ফাইলের আকার plan দ্বারা নয়, কোডে সীমাবদ্ধ: admin মিডিয়া-লাইব্রেরি আপলোডের (useAssetUpload) জন্য 10 MB, public ফর্ম-ফাইল আপলোডের (useFormFileUpload) জন্য 5 MB, এবং চ্যাট সংযুক্তির জন্য 10 MB। Built-in মিডিয়া আপলোড শুধুমাত্র ইমেজ (SVG ছাড়া) এবং PDF গ্রহণ করে।

URL-এ কি ইমেজ resize বা crop করা যাবে?

On-the-fly ইমেজ transform (resize, crop, format conversion) roadmap-এ আছে।

###近শীঘ্রই আসছে

  • URL প্যারামিটারের মাধ্যমে Image transformations (resize, crop, format conversion)
  • ফোল্ডার সংগঠন — সংরক্ষিত ফাইলের জন্য ফোল্ডার পাথ তৈরি ও পরিচালনা করুন