API 文档
通过 API 上传和管理图片
接口概览
上传图片
通过 Edge Function 一次性完成上传和数据库记录,单文件最大 100MB
获取外链
上传成功即返回公开访问 URL
匿名上传的图片无法在个人图库中管理。如需管理图片,请先登录。
环境变量
env
SUPABASE_URL=https://backend.appmiaoda.com/projects/supabase316894448002838528
SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJhdXRoZW50aWNhdGVkIiwiZXhwIjoyMDk0OTgwNzI0LCJpc3MiOiJzdXBhYmFzZSIsInJvbGUiOiJhbm9uIiwic3ViIjoiYW5vbiJ9.fN4QLPpYBXVSmQuCafG-hJxbVsKZBrpaBc-B9-PG2O8上传图片
使用 Supabase JS 客户端调用 Edge Function 上传:
javascript
import { createClient } from '@supabase/supabase-js';
const supabase = createClient(
'https://backend.appmiaoda.com/projects/supabase316894448002838528',
'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJhdXRoZW50aWNhdGVkIiwiZXhwIjoyMDk0OTgwNzI0LCJpc3MiOiJzdXBhYmFzZSIsInJvbGUiOiJhbm9uIiwic3ViIjoiYW5vbiJ9.fN4QLPpYBXVSmQuCafG-hJxbVsKZBrpaBc-B9-PG2O8'
);
async function uploadImage(file) {
const formData = new FormData();
formData.append('file', file);
const { data, error } = await supabase.functions.invoke('upload-image', {
body: formData,
});
if (error) throw error;
if (!data.success) throw new Error(data.error || '上传失败');
return data.image.public_url;
}响应示例
json
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"owner_id": null,
"filename": "photo.jpg",
"display_name": "photo.jpg",
"storage_path": "a1b2c3d4.jpg",
"public_url": "https://xxx.supabase.co/storage/v1/object/public/images/a1b2c3d4.jpg",
"mime_type": "image/jpeg",
"size_bytes": 1048576,
"view_count": 0,
"is_deleted": false,
"created_at": "2026-05-27T10:00:00Z"
}限制说明
- 单文件大小限制:100MB
- 支持格式:JPG、PNG、GIF、WebP、SVG
- 匿名上传的图片无法在个人图库中管理,建议登录后上传
- 公开 URL 可直接用于 Markdown、HTML、论坛等场景