mirror of
https://github.com/colanode/colanode.git
synced 2025-12-16 11:47:47 +01:00
Fix TUS upload url generation (#173)
This commit is contained in:
@@ -15,6 +15,7 @@ import { redis } from '@colanode/server/data/redis';
|
|||||||
import { s3Config } from '@colanode/server/data/storage';
|
import { s3Config } from '@colanode/server/data/storage';
|
||||||
import { config } from '@colanode/server/lib/config';
|
import { config } from '@colanode/server/lib/config';
|
||||||
import { fetchCounter } from '@colanode/server/lib/counters';
|
import { fetchCounter } from '@colanode/server/lib/counters';
|
||||||
|
import { generateUrl } from '@colanode/server/lib/fastify';
|
||||||
import { buildFilePath, deleteFile } from '@colanode/server/lib/files';
|
import { buildFilePath, deleteFile } from '@colanode/server/lib/files';
|
||||||
import { mapNode, updateNode } from '@colanode/server/lib/nodes';
|
import { mapNode, updateNode } from '@colanode/server/lib/nodes';
|
||||||
import { RedisKvStore } from '@colanode/server/lib/tus/redis-kv';
|
import { RedisKvStore } from '@colanode/server/lib/tus/redis-kv';
|
||||||
@@ -94,6 +95,10 @@ export const fileUploadTusRoute: FastifyPluginCallbackZod = (
|
|||||||
}
|
}
|
||||||
|
|
||||||
const path = buildFilePath(workspaceId, fileId, file.attributes);
|
const path = buildFilePath(workspaceId, fileId, file.attributes);
|
||||||
|
const url = generateUrl(
|
||||||
|
request,
|
||||||
|
`/client/v1/workspaces/${workspaceId}/files/${fileId}/tus`
|
||||||
|
);
|
||||||
|
|
||||||
const tusServer = new Server({
|
const tusServer = new Server({
|
||||||
path: '/tus',
|
path: '/tus',
|
||||||
@@ -284,8 +289,8 @@ export const fileUploadTusRoute: FastifyPluginCallbackZod = (
|
|||||||
body: JSON.stringify({ uploadId }),
|
body: JSON.stringify({ uploadId }),
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
generateUrl(_req, options) {
|
generateUrl() {
|
||||||
return `${options.proto}://${options.host}/client/v1/workspaces/${workspaceId}/files/${fileId}/tus`;
|
return url;
|
||||||
},
|
},
|
||||||
getFileIdFromRequest() {
|
getFileIdFromRequest() {
|
||||||
return path;
|
return path;
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
import { FastifyPluginCallback } from 'fastify';
|
import { FastifyPluginCallback } from 'fastify';
|
||||||
|
|
||||||
import { config } from '@colanode/server/lib/config';
|
import { config } from '@colanode/server/lib/config';
|
||||||
|
import { generateUrl } from '@colanode/server/lib/fastify';
|
||||||
import { homeTemplate } from '@colanode/server/templates';
|
import { homeTemplate } from '@colanode/server/templates';
|
||||||
|
|
||||||
export const homeRoute: FastifyPluginCallback = (instance, _, done) => {
|
export const homeRoute: FastifyPluginCallback = (instance, _, done) => {
|
||||||
@@ -8,16 +9,7 @@ export const homeRoute: FastifyPluginCallback = (instance, _, done) => {
|
|||||||
method: 'GET',
|
method: 'GET',
|
||||||
url: '/',
|
url: '/',
|
||||||
handler: async (request, reply) => {
|
handler: async (request, reply) => {
|
||||||
const port =
|
const configUrl = generateUrl(request, '/config');
|
||||||
request.port && request.port != 80 && request.port != 443
|
|
||||||
? `:${request.port}`
|
|
||||||
: '';
|
|
||||||
|
|
||||||
const prefix = config.server.pathPrefix
|
|
||||||
? `/${config.server.pathPrefix}`
|
|
||||||
: '';
|
|
||||||
|
|
||||||
const configUrl = `${request.protocol}://${request.hostname}${port}${prefix}/config`;
|
|
||||||
|
|
||||||
const template = homeTemplate({
|
const template = homeTemplate({
|
||||||
name: config.server.name,
|
name: config.server.name,
|
||||||
|
|||||||
14
apps/server/src/lib/fastify.ts
Normal file
14
apps/server/src/lib/fastify.ts
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
import { FastifyRequest } from 'fastify';
|
||||||
|
|
||||||
|
import { config } from './config';
|
||||||
|
|
||||||
|
export const generateUrl = (request: FastifyRequest, path: string) => {
|
||||||
|
const port =
|
||||||
|
request.port && request.port != 80 && request.port != 443
|
||||||
|
? `:${request.port}`
|
||||||
|
: '';
|
||||||
|
|
||||||
|
const prefix = config.server.pathPrefix ? `/${config.server.pathPrefix}` : '';
|
||||||
|
|
||||||
|
return `${request.protocol}://${request.hostname}${port}${prefix}${path}`;
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user