Add advanced canvas editing and Ubuntu deployment
This commit is contained in:
@@ -141,6 +141,30 @@ export async function addStickerAsset(
|
||||
return sticker;
|
||||
}
|
||||
|
||||
/** 服务端直接从 job 产物复制入库,避免浏览器下载/再上传大 SVG */
|
||||
export async function addStickerAssetFromJob(
|
||||
jobId: string,
|
||||
name?: string,
|
||||
): Promise<StickerAsset> {
|
||||
const form = new FormData();
|
||||
form.append('name', name || `词云 ${new Date().toLocaleString('zh-CN')}`);
|
||||
form.append('type', 'sticker');
|
||||
const res = await ensureOk(
|
||||
await fetch(apiUrl(`/api/assets/from-job/${jobId}`), { method: 'POST', body: form }),
|
||||
'从任务导入贴纸失败',
|
||||
);
|
||||
const asset = await res.json() as BackendAsset;
|
||||
const sticker: StickerAsset = {
|
||||
id: asset.asset_id,
|
||||
name: asset.name,
|
||||
type: asset.mime_type === 'image/svg+xml' ? 'svg' : 'image',
|
||||
source: asset.file_url,
|
||||
createdAt: asset.created_at,
|
||||
};
|
||||
window.dispatchEvent(new CustomEvent(STICKER_LIBRARY_EVENT));
|
||||
return sticker;
|
||||
}
|
||||
|
||||
export async function deleteStickerAsset(id: string): Promise<void> {
|
||||
await apiDeleteAsset(id);
|
||||
removeTint(id);
|
||||
|
||||
Reference in New Issue
Block a user