Browse Source

fix: PR requested change & refactor helper name

pull/9555/head
mertmit 2 months ago
parent
commit
07b360c52a
  1. 5
      packages/nocodb/src/controllers/attachments-secure.controller.ts
  2. 9
      packages/nocodb/src/controllers/attachments.controller.ts
  3. 9
      packages/nocodb/src/helpers/attachmentHelpers.ts

5
packages/nocodb/src/controllers/attachments-secure.controller.ts

@ -1,5 +1,4 @@
import path from 'path'; import path from 'path';
import fs from 'fs';
import { import {
Body, Body,
Controller, Controller,
@ -29,7 +28,7 @@ import { DataApiLimiterGuard } from '~/guards/data-api-limiter.guard';
import { TenantContext } from '~/decorators/tenant-context.decorator'; import { TenantContext } from '~/decorators/tenant-context.decorator';
import { Acl } from '~/middlewares/extract-ids/extract-ids.middleware'; import { Acl } from '~/middlewares/extract-ids/extract-ids.middleware';
import { NcError } from '~/helpers/catchError'; import { NcError } from '~/helpers/catchError';
import { fileExists } from '~/helpers/attachmentHelpers' import { localFileExists } from '~/helpers/attachmentHelpers';
@Controller() @Controller()
export class AttachmentsSecureController { export class AttachmentsSecureController {
@ -96,7 +95,7 @@ export class AttachmentsSecureController {
path: path.join('nc', filePath, fpath), path: path.join('nc', filePath, fpath),
}); });
if (!(await fileExists(file.path))) { if (!(await localFileExists(file.path))) {
return res.status(404).send('File not found'); return res.status(404).send('File not found');
} }

9
packages/nocodb/src/controllers/attachments.controller.ts

@ -1,5 +1,4 @@
import path from 'path'; import path from 'path';
import fs from 'fs';
import { import {
Body, Body,
Controller, Controller,
@ -24,7 +23,7 @@ import { AttachmentsService } from '~/services/attachments.service';
import { PresignedUrl } from '~/models'; import { PresignedUrl } from '~/models';
import { MetaApiLimiterGuard } from '~/guards/meta-api-limiter.guard'; import { MetaApiLimiterGuard } from '~/guards/meta-api-limiter.guard';
import { NcContext, NcRequest } from '~/interface/config'; import { NcContext, NcRequest } from '~/interface/config';
import { isPreviewAllowed, fileExists } from '~/helpers/attachmentHelpers'; import { isPreviewAllowed, localFileExists } from '~/helpers/attachmentHelpers';
import { DataTableService } from '~/services/data-table.service'; import { DataTableService } from '~/services/data-table.service';
import { TenantContext } from '~/decorators/tenant-context.decorator'; import { TenantContext } from '~/decorators/tenant-context.decorator';
import { DataApiLimiterGuard } from '~/guards/data-api-limiter.guard'; import { DataApiLimiterGuard } from '~/guards/data-api-limiter.guard';
@ -85,7 +84,7 @@ export class AttachmentsController {
path: path.join('nc', 'uploads', filename), path: path.join('nc', 'uploads', filename),
}); });
if (!await fs.promises.stat(file.path)) { if (!(await localFileExists(file.path))) {
return res.status(404).send('File not found'); return res.status(404).send('File not found');
} }
@ -126,7 +125,7 @@ export class AttachmentsController {
), ),
}); });
if (!(await fileExists(file.path))) { if (!(await localFileExists(file.path))) {
return res.status(404).send('File not found'); return res.status(404).send('File not found');
} }
@ -172,7 +171,7 @@ export class AttachmentsController {
path: path.join('nc', filePath, fpath), path: path.join('nc', filePath, fpath),
}); });
if (!(await fileExists(file.path))) { if (!(await localFileExists(file.path))) {
return res.status(404).send('File not found'); return res.status(404).send('File not found');
} }

9
packages/nocodb/src/helpers/attachmentHelpers.ts

@ -66,6 +66,9 @@ export function getPathFromUrl(url: string, removePrefix = false) {
return decodeURI(`${pathName}${newUrl.search}${newUrl.hash}`); return decodeURI(`${pathName}${newUrl.search}${newUrl.hash}`);
} }
export const fileExists = (path: string) => { export const localFileExists = (path: string) => {
return fs.promises.access(path).then(() => true).catch(() => false); return fs.promises
} .access(path)
.then(() => true)
.catch(() => false);
};

Loading…
Cancel
Save