ไฟล์และมีเดีย
อัปโหลดและจัดการไฟล์จากโค้ดแอปของคุณ ทุกไฟล์จะได้รับ URL สาธารณะแบบถาวร
Proyecta มี Files API ผ่าน SDK สำหรับการจัดการไฟล์แบบ programmatic จากโค้ดแอปของคุณ
ไฟล์แนบในแชท
หัวข้อที่มีชื่อว่า “ไฟล์แนบในแชท”ช่องป้อนข้อความในแชทรองรับการวางรูปภาพโดยตรง — วางภาพหน้าจอหรือลากไฟล์รูปภาพลงในช่องได้เลย รูปแบบที่รองรับ: PNG, JPEG, WebP, GIF, AVIF ขนาดสูงสุด: 10 MB ต่อรูปภาพ
ไฟล์แนบในแชทเป็นส่วนหนึ่งของข้อความ ไม่ใช่คลังไฟล์ของคุณ หากต้องการจัดเก็บถาวร ให้ใช้ SDK
Files API (SDK)
หัวข้อที่มีชื่อว่า “Files API (SDK)”แอป Proyecta ที่เผยแพร่แล้วทุกแอปสามารถเข้าถึง API จัดเก็บไฟล์ผ่าน Proyecta SDK ได้ SDK รองรับการ list, fetch และ upload ไฟล์ ไฟล์ที่อัปโหลดจะได้รับ 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) |
url | URL สาธารณะแบบถาวร (จะถูกเติมหลังขั้นตอน finalize) |
filename | ชื่อไฟล์เดิมตอนอัปโหลด |
mime_type | image/jpeg, application/pdf ฯลฯ |
size | ขนาดในหน่วยไบต์ |
path | เส้นทางโฟลเดอร์แบบเลือกได้ (เช่น /images/blog) |
content_hash | SHA-256 ของเนื้อหาไฟล์ |
metadata | ข้อมูล key/value แบบกำหนดเองได้ |
created | timestamp การสร้างแบบ ISO 8601 |
updated | timestamp อัปเดตล่าสุดแบบ ISO 8601 |
ไฟล์จะถูกอัปโหลดไปยังแอปของฉันได้อย่างไร?
หัวข้อที่มีชื่อว่า “ไฟล์จะถูกอัปโหลดไปยังแอปของฉันได้อย่างไร?”การอัปโหลดไฟล์ทำผ่าน 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 จะเชื่อมต่อการอัปโหลดในโค้ดแอปของคุณโดยใช้ two-step upload API ของ SDK และอ้างอิง URL สาธารณะที่ได้คืนมา คุณยังสามารถเรียก files.create() / files.finalize() โดยตรงจากโค้ดแอปของตัวเองได้เช่นกัน
คำถามที่พบบ่อย
หัวข้อที่มีชื่อว่า “คำถามที่พบบ่อย”URL ของไฟล์เป็นสาธารณะหรือไม่?
ใช่ ไฟล์ทุกไฟล์ที่ Files API ส่งคืนจะมี URL สาธารณะแบบถาวร อย่าอัปโหลดสิ่งที่คุณไม่ต้องการให้เปิดเผยต่อสาธารณะ
ไฟล์มีขนาดใหญ่ได้แค่ไหน?
ขีดจำกัดต่อไฟล์ขึ้นอยู่กับแผนของคุณ ไฟล์แนบในแชทถูกจำกัดที่ 10 MB ต่อรูปภาพ
ฉันสามารถปรับขนาดหรือครอบตัดรูปภาพผ่าน URL ได้ไหม?
การแปลงรูปภาพแบบ on-the-fly (ปรับขนาด ครอบตัด แปลงรูปแบบ) อยู่ใน roadmap แล้ว
เร็วๆ นี้
หัวข้อที่มีชื่อว่า “เร็วๆ นี้”- Image transformations ผ่านพารามิเตอร์ URL (ปรับขนาด ครอบตัด แปลงรูปแบบ)
- การจัดระเบียบโฟลเดอร์ — สร้างและจัดการเส้นทางโฟลเดอร์ในแผง
- “Add to Chat” จากแถวไฟล์ เพื่อให้สามารถนำ asset จากคลังไฟล์ไปใส่ในการสนทนา AI ได้