Browse Source

Merge pull request #4359 from nocodb/feat/plugin-temp-directory

feat(nocodb): write temp file to os.tmpdir() instead of process.cwd
pull/4385/head
աɨռɢӄաօռɢ 2 years ago committed by GitHub
parent
commit
643e839c9a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 8
      packages/nocodb/src/lib/plugins/backblaze/Backblaze.ts
  2. 8
      packages/nocodb/src/lib/plugins/gcs/Gcs.ts
  3. 8
      packages/nocodb/src/lib/plugins/linode/LinodeObjectStorage.ts
  4. 8
      packages/nocodb/src/lib/plugins/mino/Minio.ts
  5. 8
      packages/nocodb/src/lib/plugins/ovhCloud/OvhCloud.ts
  6. 8
      packages/nocodb/src/lib/plugins/s3/S3.ts
  7. 8
      packages/nocodb/src/lib/plugins/scaleway/ScalewayObjectStorage.ts
  8. 8
      packages/nocodb/src/lib/plugins/spaces/Spaces.ts
  9. 8
      packages/nocodb/src/lib/plugins/upcloud/UpoCloud.ts
  10. 8
      packages/nocodb/src/lib/plugins/vultr/Vultr.ts
  11. 6
      packages/nocodb/src/lib/utils/pluginUtils.ts

8
packages/nocodb/src/lib/plugins/backblaze/Backblaze.ts

@ -1,9 +1,11 @@
import fs from 'fs';
import path from 'path';
import AWS from 'aws-sdk';
import { IStorageAdapterV2, XcFile } from 'nc-plugin';
import request from 'request';
import { waitForStreamClose } from '../../utils/pluginUtils';
import {
waitForStreamClose,
generateTempFilePath,
} from '../../utils/pluginUtils';
export default class Backblaze implements IStorageAdapterV2 {
private s3Client: AWS.S3;
@ -119,7 +121,7 @@ export default class Backblaze implements IStorageAdapterV2 {
public async test(): Promise<boolean> {
try {
const tempFile = path.join(process.cwd(), 'temp.txt');
const tempFile = generateTempFilePath();
const createStream = fs.createWriteStream(tempFile);
await waitForStreamClose(createStream);
await this.fileCreate('nc-test-file.txt', {

8
packages/nocodb/src/lib/plugins/gcs/Gcs.ts

@ -1,9 +1,11 @@
import fs from 'fs';
import path from 'path';
import { Storage, StorageOptions } from '@google-cloud/storage';
import { IStorageAdapterV2, XcFile } from 'nc-plugin';
import request from 'request';
import { waitForStreamClose } from '../../utils/pluginUtils';
import {
waitForStreamClose,
generateTempFilePath,
} from '../../utils/pluginUtils';
export default class Gcs implements IStorageAdapterV2 {
private storageClient: Storage;
@ -85,7 +87,7 @@ export default class Gcs implements IStorageAdapterV2 {
public async test(): Promise<boolean> {
try {
const tempFile = path.join(process.cwd(), 'temp.txt');
const tempFile = generateTempFilePath();
const createStream = fs.createWriteStream(tempFile);
await waitForStreamClose(createStream);
await this.fileCreate('nc-test-file.txt', {

8
packages/nocodb/src/lib/plugins/linode/LinodeObjectStorage.ts

@ -1,9 +1,11 @@
import fs from 'fs';
import path from 'path';
import AWS from 'aws-sdk';
import { IStorageAdapterV2, XcFile } from 'nc-plugin';
import request from 'request';
import { waitForStreamClose } from '../../utils/pluginUtils';
import {
waitForStreamClose,
generateTempFilePath,
} from '../../utils/pluginUtils';
export default class LinodeObjectStorage implements IStorageAdapterV2 {
private s3Client: AWS.S3;
@ -109,7 +111,7 @@ export default class LinodeObjectStorage implements IStorageAdapterV2 {
public async test(): Promise<boolean> {
try {
const tempFile = path.join(process.cwd(), 'temp.txt');
const tempFile = generateTempFilePath();
const createStream = fs.createWriteStream(tempFile);
await waitForStreamClose(createStream);
await this.fileCreate('nc-test-file.txt', {

8
packages/nocodb/src/lib/plugins/mino/Minio.ts

@ -1,9 +1,11 @@
import fs from 'fs';
import path from 'path';
import { Client as MinioClient } from 'minio';
import { IStorageAdapterV2, XcFile } from 'nc-plugin';
import request from 'request';
import { waitForStreamClose } from '../../utils/pluginUtils';
import {
waitForStreamClose,
generateTempFilePath,
} from '../../utils/pluginUtils';
export default class Minio implements IStorageAdapterV2 {
private minioClient: MinioClient;
@ -73,7 +75,7 @@ export default class Minio implements IStorageAdapterV2 {
public async test(): Promise<boolean> {
try {
const tempFile = path.join(process.cwd(), 'temp.txt');
const tempFile = generateTempFilePath();
const createStream = fs.createWriteStream(tempFile);
await waitForStreamClose(createStream);
await this.fileCreate('nc-test-file.txt', {

8
packages/nocodb/src/lib/plugins/ovhCloud/OvhCloud.ts

@ -1,9 +1,11 @@
import fs from 'fs';
import path from 'path';
import AWS from 'aws-sdk';
import { IStorageAdapterV2, XcFile } from 'nc-plugin';
import request from 'request';
import { waitForStreamClose } from '../../utils/pluginUtils';
import {
waitForStreamClose,
generateTempFilePath,
} from '../../utils/pluginUtils';
export default class OvhCloud implements IStorageAdapterV2 {
private s3Client: AWS.S3;
@ -109,7 +111,7 @@ export default class OvhCloud implements IStorageAdapterV2 {
public async test(): Promise<boolean> {
try {
const tempFile = path.join(process.cwd(), 'temp.txt');
const tempFile = generateTempFilePath();
const createStream = fs.createWriteStream(tempFile);
await waitForStreamClose(createStream);
await this.fileCreate('nc-test-file.txt', {

8
packages/nocodb/src/lib/plugins/s3/S3.ts

@ -1,9 +1,11 @@
import fs from 'fs';
import path from 'path';
import AWS from 'aws-sdk';
import { IStorageAdapterV2, XcFile } from 'nc-plugin';
import request from 'request';
import { waitForStreamClose } from '../../utils/pluginUtils';
import {
waitForStreamClose,
generateTempFilePath,
} from '../../utils/pluginUtils';
export default class S3 implements IStorageAdapterV2 {
private s3Client: AWS.S3;
@ -112,7 +114,7 @@ export default class S3 implements IStorageAdapterV2 {
public async test(): Promise<boolean> {
try {
const tempFile = path.join(process.cwd(), 'temp.txt');
const tempFile = generateTempFilePath();
const createStream = fs.createWriteStream(tempFile);
await waitForStreamClose(createStream);
await this.fileCreate('nc-test-file.txt', {

8
packages/nocodb/src/lib/plugins/scaleway/ScalewayObjectStorage.ts

@ -1,9 +1,11 @@
import path from 'path';
import fs from 'fs';
import { IStorageAdapterV2, XcFile } from 'nc-plugin';
import AWS from 'aws-sdk';
import request from 'request';
import { waitForStreamClose } from '../../utils/pluginUtils';
import {
waitForStreamClose,
generateTempFilePath,
} from '../../utils/pluginUtils';
export default class ScalewayObjectStorage implements IStorageAdapterV2 {
private s3Client: AWS.S3;
@ -29,7 +31,7 @@ export default class ScalewayObjectStorage implements IStorageAdapterV2 {
public async test(): Promise<boolean> {
try {
const tempFile = path.join(process.cwd(), 'temp.txt');
const tempFile = generateTempFilePath();
const createStream = fs.createWriteStream(tempFile);
await waitForStreamClose(createStream);
await this.fileCreate('nc-test-file.txt', {

8
packages/nocodb/src/lib/plugins/spaces/Spaces.ts

@ -1,9 +1,11 @@
import fs from 'fs';
import path from 'path';
import AWS from 'aws-sdk';
import { IStorageAdapterV2, XcFile } from 'nc-plugin';
import request from 'request';
import { waitForStreamClose } from '../../utils/pluginUtils';
import {
waitForStreamClose,
generateTempFilePath,
} from '../../utils/pluginUtils';
export default class Spaces implements IStorageAdapterV2 {
private s3Client: AWS.S3;
@ -117,7 +119,7 @@ export default class Spaces implements IStorageAdapterV2 {
public async test(): Promise<boolean> {
try {
const tempFile = path.join(process.cwd(), 'temp.txt');
const tempFile = generateTempFilePath();
const createStream = fs.createWriteStream(tempFile);
await waitForStreamClose(createStream);
await this.fileCreate('nc-test-file.txt', {

8
packages/nocodb/src/lib/plugins/upcloud/UpoCloud.ts

@ -1,9 +1,11 @@
import fs from 'fs';
import path from 'path';
import AWS from 'aws-sdk';
import { IStorageAdapterV2, XcFile } from 'nc-plugin';
import request from 'request';
import { waitForStreamClose } from '../../utils/pluginUtils';
import {
waitForStreamClose,
generateTempFilePath,
} from '../../utils/pluginUtils';
export default class UpoCloud implements IStorageAdapterV2 {
private s3Client: AWS.S3;
@ -107,7 +109,7 @@ export default class UpoCloud implements IStorageAdapterV2 {
public async test(): Promise<boolean> {
try {
const tempFile = path.join(process.cwd(), 'temp.txt');
const tempFile = generateTempFilePath();
const createStream = fs.createWriteStream(tempFile);
await waitForStreamClose(createStream);
await this.fileCreate('nc-test-file.txt', {

8
packages/nocodb/src/lib/plugins/vultr/Vultr.ts

@ -1,9 +1,11 @@
import fs from 'fs';
import path from 'path';
import AWS from 'aws-sdk';
import { IStorageAdapterV2, XcFile } from 'nc-plugin';
import request from 'request';
import { waitForStreamClose } from '../../utils/pluginUtils';
import {
waitForStreamClose,
generateTempFilePath,
} from '../../utils/pluginUtils';
export default class Vultr implements IStorageAdapterV2 {
private s3Client: AWS.S3;
@ -109,7 +111,7 @@ export default class Vultr implements IStorageAdapterV2 {
public async test(): Promise<boolean> {
try {
const tempFile = path.join(process.cwd(), 'temp.txt');
const tempFile = generateTempFilePath();
const createStream = fs.createWriteStream(tempFile);
await waitForStreamClose(createStream);
await this.fileCreate('nc-test-file.txt', {

6
packages/nocodb/src/lib/utils/pluginUtils.ts

@ -1,4 +1,10 @@
import fs from 'fs';
import path from 'path';
import os from 'os';
export function generateTempFilePath() {
return path.join(os.tmpdir(), 'temp.txt');
}
export async function waitForStreamClose(
stream: fs.WriteStream

Loading…
Cancel
Save