ไฟล์และมีเดีย
จัดเก็บไฟล์และมีเดียจากแอปของคุณ ทุกไฟล์จะได้รับ URL สาธารณะถาวร
มีเดียใน Proyecta มีสองระดับ แอปส่วนใหญ่ใช้ ความสามารถด้านมีเดียของ CMS ในตัว — การอัปโหลดรูปภาพและไฟล์ที่ AI จัดการเชื่อมต่อเข้ากับ admin panel และฟอร์มให้คุณโดยอัตโนมัติ ในระดับที่ต่ำกว่านั้น Files API ในระดับล่างช่วยให้คุณควบคุมได้โดยตรงเมื่อจำเป็น ทั้งสองวิธีจัดเก็บข้อมูลบน object storage ที่รองรับ CDN และส่งคืน URL สาธารณะถาวร
ไฟล์แนบในแชท
หัวข้อที่มีชื่อว่า “ไฟล์แนบในแชท”ช่องป้อนข้อความในแชทรับรูปภาพได้โดยตรง — วางสกรีนช็อตหรือลากไฟล์รูปภาพไปวางที่ช่องป้อนข้อความ รูปแบบที่รองรับ: PNG, JPEG, WebP, GIF, AVIF ขนาดสูงสุด: 10 MB ต่อรูปภาพ
ไฟล์แนบในแชทเป็นส่วนหนึ่งของข้อความ ไม่ใช่ไลบรารีไฟล์ของคุณ สำหรับการจัดเก็บถาวร ให้ใช้การอัปโหลดมีเดียในตัวหรือ Files API
การอัปโหลดมีเดียในตัว (ความสามารถด้านมีเดียของ CMS)
หัวข้อที่มีชื่อว่า “การอัปโหลดมีเดียในตัว (ความสามารถด้านมีเดียของ CMS)”แอปส่วนใหญ่ไม่ได้เรียกใช้ Files API โดยตรง — มีเดียเป็นความสามารถในตัวของ CMS template ของแอปมี upload hook สองตัวใน @/hooks/useContent และ AI จะเชื่อมต่อเข้ากับ UI ให้คุณ คุณแค่บอกสิ่งที่ต้องการ (“ฟิลด์รูปภาพในสินค้าของฉัน”, “อัปโหลดไฟล์ในฟอร์มติดต่อของฉัน”) แล้ว Proyecta จะเลือกใช้ hook ที่เหมาะสม:
| Hook | ใช้งานที่ไหน | Endpoint | ขนาดสูงสุด |
|---|---|---|---|
useAssetUpload() |
ไลบรารีมีเดียใน admin — รองรับตัวเลือกไฟล์ใน content editor ของ admin panel | POST /v1/public/files |
10 MB |
useFormFileUpload() |
ไฟล์ฟอร์มสาธารณะ — การอัปโหลดของผู้เยี่ยมชมในฟิลด์ไฟล์ของ <FormBlock/> (ใบเสร็จ, รูปภาพ) |
POST /v1/public/uploads |
5 MB |
ทั้งสอง hook ส่งคืน url สาธารณะถาวรที่คุณจัดเก็บไว้ใน content entry (admin) หรือการส่งฟอร์ม (สาธารณะ) สิ่งที่ควรทราบ:
- ทั้งสองขนาดถูกกำหนดในโค้ด ไม่ใช่ตามแผนบริการ — 10 MB สำหรับมีเดียใน admin และ 5 MB สำหรับไฟล์ฟอร์มสาธารณะ
- รองรับเฉพาะไฟล์ประเภทรูปภาพ (ยกเว้น SVG) และ PDF เท่านั้น SVG ถูกปฏิเสธเพื่อความปลอดภัย รูปภาพขนาดใหญ่จะถูกลดขนาดอัตโนมัติก่อนอัปโหลด
- คุณไม่ต้องเรียกใช้ hook เหล่านี้โดยตรง — AI จะจัดการให้ ใช้ Files API ด้านล่างเฉพาะเมื่อต้องการจัดการไฟล์ในระดับต่ำกว่าหรือแบบกำหนดเองเท่านั้น
Files API
หัวข้อที่มีชื่อว่า “Files API”แอป Proyecta ที่ publish แล้วทุกแอปสามารถจัดเก็บและให้บริการไฟล์ได้ จากหน้าเพจของแอป งานนี้เป็นการเรียกเพียงครั้งเดียว — ขั้นตอน signed upload หลายขั้นถูกจัดการให้คุณแล้ว:
import * as platform from '@/lib/platformClient.ts';
// Upload straight from a file input — one call, no signed-URL jugglingasync 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 storedconst { assets, hasMore } = await platform.assetList({ limit: 20 });
// Remove oneawait platform.assetDelete(asset.id);ไฟล์ส่วนตัว ส่ง visibility: 'private' เพื่อจัดเก็บไฟล์นอก bucket สาธารณะโดยไม่มี URL ถาวร แล้วอ่านกลับมาด้วยลิงก์อายุสั้นแทน:
const { url, expiresAt } = await platform.assetSignedUrl(asset.id, { variant: 'thumbnail' });ใช้ไฟล์ส่วนตัว + signed URL สำหรับทุกอย่างที่ไม่ควรถูกเดาได้ — ไฟล์ที่ลูกค้าอัปโหลด เอกสารยืนยันตัวตน หรือไฟล์ดาวน์โหลดที่ต้องชำระเงิน
ไฟล์จะถูกอัปโหลดไปยังแอปของฉันได้อย่างไร?
หัวข้อที่มีชื่อว่า “ไฟล์จะถูกอัปโหลดไปยังแอปของฉันได้อย่างไร?”การอัปโหลดไฟล์จัดการผ่าน AI builder แค่บอก AI ให้สร้างระบบอัปโหลดให้คุณ:
"ให้ผู้ใช้อัปโหลดรูปโปรไฟล์และจัดเก็บไว้ใน Proyecta Files""เพิ่มแกลเลอรีรูปภาพที่ผู้ใช้ที่ลงชื่อเข้าใช้แล้วสามารถอัปโหลดและดูรูปภาพของตัวเองได้""ให้ฉันแนบใบแจ้งหนี้ PDF กับออเดอร์ได้"
AI จะเชื่อมต่อระบบอัปโหลดในโค้ดแอปของคุณและอ้างอิง URL สาธารณะที่ได้รับกลับมา
คำถามที่พบบ่อย
หัวข้อที่มีชื่อว่า “คำถามที่พบบ่อย”URL ของไฟล์เป็นแบบสาธารณะหรือไม่?
ใช่ ทุกไฟล์ที่ส่งคืนจาก Files API มี URL สาธารณะถาวร อย่าอัปโหลดสิ่งที่คุณไม่ต้องการให้เปิดเผย
ไฟล์มีขนาดใหญ่ได้แค่ไหน?
ขนาดไฟล์ถูกจำกัดในโค้ด ไม่ใช่ตามแผนบริการ: 10 MB สำหรับการอัปโหลดไลบรารีมีเดียใน admin (useAssetUpload), 5 MB สำหรับการอัปโหลดไฟล์ฟอร์มสาธารณะ (useFormFileUpload) และ 10 MB สำหรับไฟล์แนบในแชท การอัปโหลดมีเดียในตัวรองรับเฉพาะรูปภาพ (ยกเว้น SVG) และ PDF เท่านั้น
ฉันสามารถ resize หรือ crop รูปภาพผ่าน URL ได้ไหม?
การแปลงรูปภาพแบบ on-the-fly (resize, crop, การแปลงรูปแบบ) อยู่ใน roadmap
เร็วๆ นี้
หัวข้อที่มีชื่อว่า “เร็วๆ นี้”- การแปลงรูปภาพ ผ่าน URL parameters (resize, crop, การแปลงรูปแบบ)
- การจัดระเบียบโฟลเดอร์ — สร้างและจัดการเส้นทางโฟลเดอร์สำหรับไฟล์ที่จัดเก็บ