Persist upload IDs and URL secrets on successful queue entries.

Store server response fields and mode-specific secrets so share links can be built client-side after upload without precomputed paths.
This commit is contained in:
2026-10-25 22:00:05 +01:00
parent 5f6ee193e7
commit 4e9a3368a6
2 changed files with 30 additions and 12 deletions
+20 -11
View File
@@ -44,11 +44,6 @@ const UPLOAD_UPLOADING_ENTRY: UploadQueueEntry = {
message: UPLOAD_UPLOADING_MESSAGE
};
const UPLOAD_UPLOADED_ENTRY: UploadQueueEntry = {
status: 'uploaded',
message: UPLOAD_UPLOADED_MESSAGE
};
const UPLOAD_FAILED_ENTRY: UploadQueueEntry = {
status: 'failed',
message: UPLOAD_FAILED_MESSAGE
@@ -177,11 +172,18 @@ export const useUploadStore = defineStore('upload', () => {
setUploadEntry(key, UPLOAD_UPLOADING_ENTRY);
try {
const { request } = prepared;
const { request, fragmentKey } = prepared;
await uploadZk(request, altcha);
const result = await uploadZk(request, altcha);
setUploadEntry(key, UPLOAD_UPLOADED_ENTRY);
setUploadEntry(key, {
status: 'uploaded',
message: UPLOAD_UPLOADED_MESSAGE,
uploadId: result.id,
mode: 'zk',
deleteToken: result.deleteToken,
urlSecret: fragmentKey
});
} catch (error) {
console.error('[upload] upload failed', { file: file.name, error });
@@ -203,11 +205,18 @@ export const useUploadStore = defineStore('upload', () => {
setUploadEntry(key, UPLOAD_UPLOADING_ENTRY);
try {
const { request } = prepared;
const { request, secret } = prepared;
await uploadHotlink(request, altcha);
const result = await uploadHotlink(request, altcha);
setUploadEntry(key, UPLOAD_UPLOADED_ENTRY);
setUploadEntry(key, {
status: 'uploaded',
message: UPLOAD_UPLOADED_MESSAGE,
uploadId: result.id,
mode: 'hotlink',
deleteToken: result.deleteToken,
urlSecret: secret
});
} catch (error) {
console.error('[upload] upload failed', { file: file.name, error });