onlyoffice filename corrupted after editing (#686)
Fix #683 Filename handling is going to be worth a major refactor
This commit is contained in:
@@ -94,6 +94,10 @@ async function report(platform: TdrivePlatform, args: ListArguments) {
|
|||||||
` - ${formatTS(version.date_added)} by ${await formatUser(version.creator_id)}`,
|
` - ${formatTS(version.date_added)} by ${await formatUser(version.creator_id)}`,
|
||||||
);
|
);
|
||||||
console.error(` - id: ${version.id}`);
|
console.error(` - id: ${version.id}`);
|
||||||
|
if (dfile.name != version.filename)
|
||||||
|
console.error(` - filename: ${JSON.stringify(version.filename)}`);
|
||||||
|
if (dfile.name != version.file_metadata.name)
|
||||||
|
console.error(` - meta.name: ${JSON.stringify(version.file_metadata.name)}`);
|
||||||
console.error(
|
console.error(
|
||||||
` - size: ${version.file_metadata.size} (${
|
` - size: ${version.file_metadata.size} (${
|
||||||
version.file_metadata.size > previousSize ? "+" : ""
|
version.file_metadata.size > previousSize ? "+" : ""
|
||||||
|
|||||||
@@ -1150,7 +1150,15 @@ export class DocumentsService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (file) {
|
if (file) {
|
||||||
const fileEntity = await globalResolver.services.files.save(null, file, options, context);
|
const fileEntity = await globalResolver.services.files.save(
|
||||||
|
null,
|
||||||
|
file,
|
||||||
|
{
|
||||||
|
...options,
|
||||||
|
filename: options.filename ?? driveFile.name,
|
||||||
|
},
|
||||||
|
context,
|
||||||
|
);
|
||||||
|
|
||||||
await globalResolver.services.documents.documents.createVersion(
|
await globalResolver.services.documents.documents.createVersion(
|
||||||
driveFile.id,
|
driveFile.id,
|
||||||
@@ -1160,6 +1168,7 @@ export class DocumentsService {
|
|||||||
file_metadata: {
|
file_metadata: {
|
||||||
external_id: fileEntity.id,
|
external_id: fileEntity.id,
|
||||||
source: "internal",
|
source: "internal",
|
||||||
|
name: file.filename ?? driveFile.name,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
context,
|
context,
|
||||||
@@ -1186,8 +1195,14 @@ export class DocumentsService {
|
|||||||
)}`,
|
)}`,
|
||||||
);
|
);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
logger.error({ error: `${error}` }, "Failed to cancel editing Drive item");
|
logger.error(
|
||||||
CrudException.throwMe(error, new CrudException("Failed to cancel editing Drive item", 500));
|
{ error: `${error}` },
|
||||||
|
`Failed to ${keepEditing ? "update" : "end"} editing Drive item`,
|
||||||
|
);
|
||||||
|
CrudException.throwMe(
|
||||||
|
error,
|
||||||
|
new CrudException(`Failed to ${keepEditing ? "update" : "end"} editing Drive item`, 500),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -422,7 +422,7 @@ export class DocumentsController {
|
|||||||
totalChunks: parseInt(q.resumableTotalChunks || q.total_chunks) || 1,
|
totalChunks: parseInt(q.resumableTotalChunks || q.total_chunks) || 1,
|
||||||
totalSize: parseInt(q.resumableTotalSize || q.total_size) || 0,
|
totalSize: parseInt(q.resumableTotalSize || q.total_size) || 0,
|
||||||
chunkNumber: parseInt(q.resumableChunkNumber || q.chunk_number) || 1,
|
chunkNumber: parseInt(q.resumableChunkNumber || q.chunk_number) || 1,
|
||||||
filename: q.resumableFilename || q.filename || file?.filename || undefined,
|
filename: q.filename || undefined,
|
||||||
type: q.resumableType || q.type || file?.mimetype || undefined,
|
type: q.resumableType || q.type || file?.mimetype || undefined,
|
||||||
waitForThumbnail: !!q.thumbnail_sync,
|
waitForThumbnail: !!q.thumbnail_sync,
|
||||||
ignoreThumbnails: false,
|
ignoreThumbnails: false,
|
||||||
|
|||||||
Reference in New Issue
Block a user