mirror of
https://github.com/colanode/colanode.git
synced 2025-12-15 19:27:46 +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 { config } from '@colanode/server/lib/config';
|
||||
import { fetchCounter } from '@colanode/server/lib/counters';
|
||||
import { generateUrl } from '@colanode/server/lib/fastify';
|
||||
import { buildFilePath, deleteFile } from '@colanode/server/lib/files';
|
||||
import { mapNode, updateNode } from '@colanode/server/lib/nodes';
|
||||
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 url = generateUrl(
|
||||
request,
|
||||
`/client/v1/workspaces/${workspaceId}/files/${fileId}/tus`
|
||||
);
|
||||
|
||||
const tusServer = new Server({
|
||||
path: '/tus',
|
||||
@@ -284,8 +289,8 @@ export const fileUploadTusRoute: FastifyPluginCallbackZod = (
|
||||
body: JSON.stringify({ uploadId }),
|
||||
};
|
||||
},
|
||||
generateUrl(_req, options) {
|
||||
return `${options.proto}://${options.host}/client/v1/workspaces/${workspaceId}/files/${fileId}/tus`;
|
||||
generateUrl() {
|
||||
return url;
|
||||
},
|
||||
getFileIdFromRequest() {
|
||||
return path;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { FastifyPluginCallback } from 'fastify';
|
||||
|
||||
import { config } from '@colanode/server/lib/config';
|
||||
import { generateUrl } from '@colanode/server/lib/fastify';
|
||||
import { homeTemplate } from '@colanode/server/templates';
|
||||
|
||||
export const homeRoute: FastifyPluginCallback = (instance, _, done) => {
|
||||
@@ -8,16 +9,7 @@ export const homeRoute: FastifyPluginCallback = (instance, _, done) => {
|
||||
method: 'GET',
|
||||
url: '/',
|
||||
handler: async (request, reply) => {
|
||||
const port =
|
||||
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 configUrl = generateUrl(request, '/config');
|
||||
|
||||
const template = homeTemplate({
|
||||
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