diff --git a/services/web/app/src/Features/Compile/ClsiManager.js b/services/web/app/src/Features/Compile/ClsiManager.js index 0b5156bfa2..91aceb4f4c 100644 --- a/services/web/app/src/Features/Compile/ClsiManager.js +++ b/services/web/app/src/Features/Compile/ClsiManager.js @@ -740,11 +740,19 @@ function _finaliseRequest(projectId, options, project, docs, files) { for (let path in files) { const file = files[path] path = path.replace(/^\//, '') // Remove leading / - const { bucket, key } = getBlobLocation(historyId, file.hash) + + const filestoreURL = `${Settings.apis.filestore.url}/project/${project._id}/file/${file._id}` + let url = filestoreURL + let fallbackURL + if (file.hash) { + const { bucket, key } = getBlobLocation(historyId, file.hash) + url = `${Settings.apis.filestore.url}/bucket/${bucket}/key/${key}` + fallbackURL = filestoreURL + } resources.push({ path, - url: `${Settings.apis.filestore.url}/bucket/${bucket}/key/${key}`, - fallbackURL: `${Settings.apis.filestore.url}/project/${project._id}/file/${file._id}`, + url, + fallbackURL, modified: file.created?.getTime(), }) } diff --git a/services/web/test/unit/src/Compile/ClsiManagerTests.js b/services/web/test/unit/src/Compile/ClsiManagerTests.js index cb532acdef..c2ff18a7ba 100644 --- a/services/web/test/unit/src/Compile/ClsiManagerTests.js +++ b/services/web/test/unit/src/Compile/ClsiManagerTests.js @@ -46,6 +46,11 @@ describe('ClsiManager', function () { created: new Date(), hash: 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb', }, + '/images/no-hash.png': { + name: 'no-hash.png', + _id: 'mock-file-id-3', + created: new Date(), + }, } this.clsiCookieKey = 'clsiserver' this.clsiServerId = 'clsi-server-id' @@ -1027,16 +1032,20 @@ function _makeResources(project, docs, files) { }) } for (const [path, file] of Object.entries(files)) { - let url + let url, fallbackURL if (file.hash === GLOBAL_BLOB_HASH) { url = `${FILESTORE_URL}/bucket/global-blobs/key/aa/aa/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` - } else { + fallbackURL = `${FILESTORE_URL}/project/${project._id}/file/${file._id}` + } else if (file.hash) { url = `${FILESTORE_URL}/bucket/project-blobs/key/${project.overleaf.history.id}/${file.hash}` + fallbackURL = `${FILESTORE_URL}/project/${project._id}/file/${file._id}` + } else { + url = `${FILESTORE_URL}/project/${project._id}/file/${file._id}` } resources.push({ path: path.replace(/^\//, ''), url, - fallbackURL: `${FILESTORE_URL}/project/${project._id}/file/${file._id}`, + fallbackURL, modified: file.created.getTime(), }) }