| 166 | } |
| 167 | |
| 168 | export async function uploadToS3( |
| 169 | _: IpcMainInvokeEvent, |
| 170 | fileBuffer: ArrayBuffer, |
| 171 | uploadUrl: string, |
| 172 | headers: Record<string, string> |
| 173 | ): Promise<NativeUploadResult> { |
| 174 | try { |
| 175 | const response = await rawFetch(uploadUrl, "PUT", fileBuffer, headers); |
| 176 | |
| 177 | if (!response.ok) { |
| 178 | const errorText = await response.text(); |
| 179 | return { success: false, error: `Upload failed: ${response.status} ${errorText}` }; |
| 180 | } |
| 181 | |
| 182 | return { success: true, url: uploadUrl }; |
| 183 | } catch (e) { |
| 184 | return { success: false, error: e instanceof Error ? e.message : "Unknown error" }; |
| 185 | } |
| 186 | } |
| 187 | |
| 188 | export async function uploadToCatbox( |
| 189 | _: IpcMainInvokeEvent, |