fix: api dataset filename fallback (#6529)

This commit is contained in:
Ryo
2026-03-09 15:42:57 +08:00
committed by GitHub
parent 53fe3631df
commit e71f20bbe3
@@ -95,7 +95,6 @@ export const useApiDatasetRequest = ({ apiServer }: { apiServer: APIFileServer }
const getPreviewUrlFilename = (previewUrl: string) => {
const parseFilename = (pathname: string) => {
const filename = pathname.split('/').pop() || '';
if (!filename) return '';
try {
@@ -112,6 +111,28 @@ export const useApiDatasetRequest = ({ apiServer }: { apiServer: APIFileServer }
}
};
const getFallbackTitle = async ({
apiFileId,
previewUrl
}: {
apiFileId: string;
previewUrl: string;
}) => {
try {
const fileDetail = await getFileDetail({ apiFileId });
if (fileDetail.name) {
return fileDetail.name;
}
} catch (error) {
logger.warn('Get api dataset file detail for title fallback failed', {
apiFileId,
error
});
}
return getPreviewUrlFilename(previewUrl) || getNanoid();
};
const listFiles = async ({
searchKey,
parentId
@@ -176,6 +197,8 @@ export const useApiDatasetRequest = ({ apiServer }: { apiServer: APIFileServer }
};
}
if (previewUrl) {
const fallbackTitle = title || (await getFallbackTitle({ apiFileId, previewUrl }));
// Get from buffer
const rawTextBuffer = await getS3RawTextSource().getRawTextBuffer({
sourceId: previewUrl,
@@ -183,7 +206,7 @@ export const useApiDatasetRequest = ({ apiServer }: { apiServer: APIFileServer }
});
if (rawTextBuffer) {
return {
title: title || rawTextBuffer.filename || getPreviewUrlFilename(previewUrl),
title: title || rawTextBuffer.filename || fallbackTitle,
rawText: rawTextBuffer.text
};
}
@@ -198,7 +221,7 @@ export const useApiDatasetRequest = ({ apiServer }: { apiServer: APIFileServer }
getFormatText: true
});
const sourceName = title || getPreviewUrlFilename(previewUrl) || getNanoid();
const sourceName = fallbackTitle;
getS3RawTextSource().addRawTextBuffer({
sourceId: previewUrl,
@@ -208,7 +231,7 @@ export const useApiDatasetRequest = ({ apiServer }: { apiServer: APIFileServer }
});
return {
title: title || sourceName,
title: fallbackTitle,
rawText
};
}