ফাইল ও মিডিয়া
তোমার অ্যাপ কোড থেকে ফাইল আপলোড ও ম্যানেজ করো। প্রতিটি ফাইল একটি স্থায়ী পাবলিক URL পায়।
Proyecta SDK-এর মাধ্যমে একটি Files API প্রদান করে, যা দিয়ে তুমি তোমার অ্যাপ কোড থেকে প্রোগ্রামেটিকভাবে ফাইল ম্যানেজ করতে পারবে।
Chat attachments
Section titled “Chat attachments”চ্যাট ইনপুট সরাসরি ছবি গ্রহণ করে — একটি স্ক্রিনশট পেস্ট করো বা ইনপুটে একটি ইমেজ ফাইল ড্র্যাগ করো। সাপোর্টেড ফরম্যাট: PNG, JPEG, WebP, GIF, AVIF। সর্বোচ্চ সাইজ: প্রতিটি ছবির জন্য 10 MB।
Chat attachment-গুলো বার্তার অংশ, তোমার ফাইল লাইব্রেরির নয়। স্থায়ী স্টোরেজের জন্য SDK ব্যবহার করো।
Files API (SDK)
Section titled “Files API (SDK)”প্রতিটি published Proyecta অ্যাপ Proyecta SDK-এর মাধ্যমে একটি ফাইল স্টোরেজ API অ্যাক্সেস করতে পারে। SDK listing, fetching, এবং uploading ফাইল সাপোর্ট করে। আপলোড করা ফাইলগুলো একটি স্থায়ী পাবলিক URL পায়, যা তুমি তোমার অ্যাপ থেকে রেফারেন্স করতে পারবে।
import Proyecta from '@proyecta-ai/sdk';
const proyecta = new Proyecta({ apiKey: process.env.PROYECTA_API_KEY });
// List files (supports limit and starting_after for pagination)const files = await proyecta.files.list();
// Fetch a single file by IDconst file = await proyecta.files.get('1234567890123456789');console.log(file.url); // permanent public URL
// Upload a file (two-step)// Step 1: create a placeholder and get a signed upload URLconst { id: fileId, upload_url } = await proyecta.files.create({ filename: 'avatar.png', mime_type: 'image/png',});
// Step 2: PUT the file bytes directly to the signed URLawait fetch(upload_url, { method: 'PUT', body: fileBytes, headers: { 'Content-Type': 'image/png' },});
// Step 3: finalize to get the permanent file recordconst uploaded = await proyecta.files.finalize({ fileId });console.log(uploaded.url); // permanent public URL, now populatedপ্রতিটি ফাইলে নিচের তথ্যগুলো থাকে:
| ফিল্ড | বিবরণ |
|---|---|
id | অনন্য পরিচয়কারী (numeric snowflake string) |
url | স্থায়ী পাবলিক URL (finalize ধাপের পরে পূরণ হয়) |
filename | আপলোডের সময় মূল ফাইলের নাম |
mime_type | image/jpeg, application/pdf, ইত্যাদি |
size | বাইটে সাইজ |
path | ঐচ্ছিক ফোল্ডার পাথ (যেমন /images/blog) |
content_hash | ফাইলের কন্টেন্টের SHA-256 |
metadata | যেকোনো key/value মেটাডেটা |
created | ISO 8601 তৈরির timestamp |
updated | ISO 8601 সর্বশেষ আপডেটের timestamp |
আমার অ্যাপে ফাইল কীভাবে আপলোড হবে?
Section titled “আমার অ্যাপে ফাইল কীভাবে আপলোড হবে?”ফাইল আপলোড AI builder-এর মাধ্যমে পরিচালিত হয়। AI-কে তোমার জন্য আপলোড ফ্লো তৈরি করতে বলো:
"Let users upload a profile photo and store it in Proyecta Files""Add an image gallery where signed-in users can upload and view their photos""Let me attach PDF invoices to orders"
AI তোমার অ্যাপ কোডে SDK-এর two-step upload API ব্যবহার করে আপলোড সংযুক্ত করে দেয় এবং ফিরে আসা পাবলিক URL রেফারেন্স করে। তুমি তোমার নিজের অ্যাপ কোড থেকে সরাসরি files.create() / files.finalize() কলও করতে পারো।
প্রায়শই জিজ্ঞাসিত প্রশ্ন
Section titled “প্রায়শই জিজ্ঞাসিত প্রশ্ন”ফাইল URL-গুলো কি পাবলিক?
হ্যাঁ। Files API থেকে পাওয়া যেকোনো ফাইলের একটি স্থায়ী পাবলিক URL থাকে। এমন কিছু আপলোড করো না যা তুমি প্রকাশ করতে চাও না।
একটি ফাইল কত বড় হতে পারে?
প্রতি ফাইলের সীমা তোমার প্ল্যানের উপর নির্ভর করে। Chat attachment-এর ক্ষেত্রে প্রতিটি ছবির সর্বোচ্চ সাইজ 10 MB।
আমি কি URL থেকে ছবি resize বা crop করতে পারব?
অন-দ্য-ফ্লাই ইমেজ ট্রান্সফর্ম (resize, crop, format conversion) রোডম্যাপে রয়েছে।
###近শীঘ্রই আসছে
- URL প্যারামিটারের মাধ্যমে Image transformations (resize, crop, format conversion)
- Folder organization — প্যানেলে ফোল্ডার পাথ তৈরি ও ম্যানেজ করো
- ফাইল রো থেকে “Add to Chat” সুবিধা, যাতে লাইব্রেরি অ্যাসেট AI কথোপকথনে যোগ করা যায়