Download frontend/src/core/uploads/api.ts from yonagush/deerflow: direct link, hf CLI and curl.
- Browser
- Download file 1.97 kB
-
https://huggingface.co/spaces/yonagush/deerflow/resolve/main/frontend/src/core/uploads/api.ts
- Command line
-
hf download hf://spaces/yonagush/deerflow/frontend/src/core/uploads/api.ts
-
curl -L -o api.ts https://huggingface.co/spaces/yonagush/deerflow/resolve/main/frontend/src/core/uploads/api.ts
1.97 kB
| /** | |
| * API functions for file uploads | |
| */ | |
| import { getBackendBaseURL } from "../config"; | |
| export interface UploadedFileInfo { | |
| filename: string; | |
| size: number; | |
| path: string; | |
| virtual_path: string; | |
| artifact_url: string; | |
| extension?: string; | |
| modified?: number; | |
| markdown_file?: string; | |
| markdown_path?: string; | |
| markdown_virtual_path?: string; | |
| markdown_artifact_url?: string; | |
| } | |
| export interface UploadResponse { | |
| success: boolean; | |
| files: UploadedFileInfo[]; | |
| message: string; | |
| } | |
| export interface ListFilesResponse { | |
| files: UploadedFileInfo[]; | |
| count: number; | |
| } | |
| /** | |
| * Upload files to a thread | |
| */ | |
| export async function uploadFiles( | |
| threadId: string, | |
| files: File[], | |
| ): Promise<UploadResponse> { | |
| const formData = new FormData(); | |
| files.forEach((file) => { | |
| formData.append("files", file); | |
| }); | |
| const response = await fetch( | |
| `${getBackendBaseURL()}/api/threads/${threadId}/uploads`, | |
| { | |
| method: "POST", | |
| body: formData, | |
| }, | |
| ); | |
| if (!response.ok) { | |
| const error = await response | |
| .json() | |
| .catch(() => ({ detail: "Upload failed" })); | |
| throw new Error(error.detail ?? "Upload failed"); | |
| } | |
| return response.json(); | |
| } | |
| /** | |
| * List all uploaded files for a thread | |
| */ | |
| export async function listUploadedFiles( | |
| threadId: string, | |
| ): Promise<ListFilesResponse> { | |
| const response = await fetch( | |
| `${getBackendBaseURL()}/api/threads/${threadId}/uploads/list`, | |
| ); | |
| if (!response.ok) { | |
| throw new Error("Failed to list uploaded files"); | |
| } | |
| return response.json(); | |
| } | |
| /** | |
| * Delete an uploaded file | |
| */ | |
| export async function deleteUploadedFile( | |
| threadId: string, | |
| filename: string, | |
| ): Promise<{ success: boolean; message: string }> { | |
| const response = await fetch( | |
| `${getBackendBaseURL()}/api/threads/${threadId}/uploads/${filename}`, | |
| { | |
| method: "DELETE", | |
| }, | |
| ); | |
| if (!response.ok) { | |
| throw new Error("Failed to delete file"); | |
| } | |
| return response.json(); | |
| } | |