Lewati ke konten

File & Media

Unggah dan kelola file dari kode aplikasimu. Setiap file mendapatkan URL publik permanen.

Proyecta menyediakan Files API melalui SDK untuk pengelolaan file secara terprogram dari kode aplikasimu.

Input chat menerima gambar secara langsung — tempel screenshot atau seret file gambar ke input. Format yang didukung: PNG, JPEG, WebP, GIF, AVIF. Ukuran maksimum: 10 MB per gambar.

Lampiran chat adalah bagian dari pesan, bukan bagian dari pustaka file-mu. Untuk penyimpanan persisten, gunakan SDK.

Setiap aplikasi Proyecta yang sudah dipublikasikan memiliki akses ke API penyimpanan file melalui Proyecta SDK. SDK mendukung operasi listing, fetching, dan uploading file. File yang diunggah mendapatkan URL publik permanen yang bisa kamu referensikan dari aplikasimu.

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 ID
const 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 URL
const { 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 URL
await fetch(upload_url, {
method: 'PUT',
body: fileBytes,
headers: { 'Content-Type': 'image/png' },
});
// Step 3: finalize to get the permanent file record
const uploaded = await proyecta.files.finalize({ fileId });
console.log(uploaded.url); // permanent public URL, now populated

Setiap file memiliki field berikut:

FieldDeskripsi
idPengenal unik (string snowflake numerik)
urlURL publik permanen (terisi setelah langkah finalize)
filenameNama file asli saat diunggah
mime_typeimage/jpeg, application/pdf, dan lain-lain
sizeUkuran dalam byte
pathPath folder opsional (contoh: /images/blog)
content_hashSHA-256 dari isi file
metadataMetadata key/value bebas
createdTimestamp pembuatan dalam format ISO 8601
updatedTimestamp pembaruan terakhir dalam format ISO 8601

Bagaimana cara file diunggah ke aplikasiku?

Section titled “Bagaimana cara file diunggah ke aplikasiku?”

Unggah file ditangani melalui AI builder. Minta AI untuk membangun alur upload untukmu:

  • "Biarkan pengguna mengunggah foto profil dan simpan di Proyecta Files"
  • "Tambahkan galeri gambar tempat pengguna yang sudah masuk dapat mengunggah dan melihat foto mereka"
  • "Izinkan saya melampirkan faktur PDF ke pesanan"

AI akan menyambungkan alur upload di kode aplikasimu menggunakan two-step upload API dari SDK dan mereferensikan URL publik yang dikembalikan. Kamu juga bisa memanggil files.create() / files.finalize() secara langsung dari kode aplikasimu sendiri.

Apakah URL file bersifat publik?

Ya. Setiap file yang dikembalikan oleh Files API memiliki URL publik permanen. Jangan unggah sesuatu yang tidak ingin kamu ekspos.

Seberapa besar file yang bisa diunggah?

Batas per file bergantung pada paketmu. Lampiran chat dibatasi hingga 10 MB per gambar.

Bisakah saya mengubah ukuran atau memotong gambar melalui URL?

Transformasi gambar secara on-the-fly (resize, crop, konversi format) sudah ada di roadmap.

  • Transformasi gambar melalui parameter URL (resize, crop, konversi format)
  • Organisasi folder — buat dan kelola path folder di panel
  • “Add to Chat” dari baris file, sehingga aset dari pustaka bisa langsung dimasukkan ke percakapan AI