fix: fall back to local storage when HF dataset upload fails
Browse filesInstead of returning an error when HF upload fails, the publish
pipeline now falls through to local storage. This ensures publish
always works even when the dataset hasn't been created yet.
Made-with: Cursor
backend/src/publisher/index.ts
CHANGED
|
@@ -136,7 +136,7 @@ export async function publishDocument(docName: string, token?: string): Promise<
|
|
| 136 |
}
|
| 137 |
}
|
| 138 |
|
| 139 |
-
//
|
| 140 |
if (isHfStorageEnabled()) {
|
| 141 |
try {
|
| 142 |
const urls = await uploadPublishedAssets(docName, {
|
|
@@ -147,18 +147,11 @@ export async function publishDocument(docName: string, token?: string): Promise<
|
|
| 147 |
}, token);
|
| 148 |
return { ...urls, success: true };
|
| 149 |
} catch (err) {
|
| 150 |
-
console.
|
| 151 |
-
return {
|
| 152 |
-
htmlUrl: null,
|
| 153 |
-
pdfUrl: null,
|
| 154 |
-
thumbUrl: null,
|
| 155 |
-
success: false,
|
| 156 |
-
error: (err as Error).message,
|
| 157 |
-
};
|
| 158 |
}
|
| 159 |
}
|
| 160 |
|
| 161 |
-
// Local
|
| 162 |
const { writeFileSync, mkdirSync } = await import("fs");
|
| 163 |
const publishDir = join(DATA_DIR, "published", docName.replace(/[^a-zA-Z0-9_-]/g, "_"));
|
| 164 |
mkdirSync(publishDir, { recursive: true });
|
|
|
|
| 136 |
}
|
| 137 |
}
|
| 138 |
|
| 139 |
+
// Try uploading to HF dataset
|
| 140 |
if (isHfStorageEnabled()) {
|
| 141 |
try {
|
| 142 |
const urls = await uploadPublishedAssets(docName, {
|
|
|
|
| 147 |
}, token);
|
| 148 |
return { ...urls, success: true };
|
| 149 |
} catch (err) {
|
| 150 |
+
console.warn("[publish] HF upload failed, falling back to local storage:", (err as Error).message);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 151 |
}
|
| 152 |
}
|
| 153 |
|
| 154 |
+
// Local storage (primary when HF disabled, fallback when HF fails)
|
| 155 |
const { writeFileSync, mkdirSync } = await import("fs");
|
| 156 |
const publishDir = join(DATA_DIR, "published", docName.replace(/[^a-zA-Z0-9_-]/g, "_"));
|
| 157 |
mkdirSync(publishDir, { recursive: true });
|