@things-factory/integration-sftp 7.0.0-alpha.0 → 7.0.0-alpha.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -6,8 +6,6 @@ const env_1 = require("@things-factory/env");
6
6
  const sftp_const_1 = require("./sftp-const");
7
7
  const crypto = require('crypto');
8
8
  const { PassThrough } = require('stream');
9
- const path = require('path');
10
- const { fs } = require('memfs');
11
9
  if (sftp_const_1.SFTPFILESTORAGE && sftp_const_1.SFTPFILESTORAGE.type == 's3') {
12
10
  const S3 = new aws_sdk_1.default.S3({
13
11
  accessKeyId: sftp_const_1.SFTPFILESTORAGE.accessKeyId,
@@ -1 +1 @@
1
- {"version":3,"file":"sftp-s3.js","sourceRoot":"","sources":["../server/sftp-s3.ts"],"names":[],"mappings":"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","sourcesContent":["import AWS from 'aws-sdk'\n\nimport { logger } from '@things-factory/env'\n\nimport { SFTPFILESTORAGE } from './sftp-const'\n\nconst crypto = require('crypto')\n\nconst { PassThrough } = require('stream')\nconst path = require('path')\nconst { fs } = require('memfs')\n\nif (SFTPFILESTORAGE && SFTPFILESTORAGE.type == 's3') {\n const S3 = new AWS.S3({\n accessKeyId: SFTPFILESTORAGE.accessKeyId,\n secretAccessKey: SFTPFILESTORAGE.secretAccessKey\n })\n\n SFTPFILESTORAGE.readFolders = async (params, encoding) => {\n let S3params = {\n Bucket: SFTPFILESTORAGE.bucketName,\n Delimiter: '/',\n Prefix: params.path\n }\n\n const result = await S3.listObjects(S3params).promise()\n\n let body = result.Contents\n\n return body\n }\n\n SFTPFILESTORAGE.readFile = async (path, encoding) => {\n const result = await S3.getObject({\n Bucket: SFTPFILESTORAGE.bucketName,\n Key: path\n }).promise()\n\n var body = result.Body\n\n if (encoding) {\n return body.toString(encoding)\n }\n\n return body\n }\n\n SFTPFILESTORAGE.moveFile = async (path, encoding) => {\n const copyResult = await S3.copyObject({\n Bucket: SFTPFILESTORAGE.bucketName,\n CopySource: SFTPFILESTORAGE.bucketName + '/' + path.source,\n Key: path.destination\n }).promise()\n\n const copyBody = copyResult.CopyObjectResult\n\n const deleteResult = await S3.deleteObject({\n Bucket: SFTPFILESTORAGE.bucketName,\n Key: path.source\n }).promise()\n\n return true\n }\n\n /* upload file */\n SFTPFILESTORAGE.uploadFile = ({ stream, filename, uploadPath }) => {\n const id = crypto.randomUUID()\n let size: number = 0\n\n return new Promise<{ id: string; path: string; size: number }>((resolve, reject) =>\n stream\n .pipe(\n (() => {\n var pass = new PassThrough()\n\n S3.upload(\n {\n Bucket: SFTPFILESTORAGE.bucketName,\n Key: uploadPath + '/' + filename,\n Body: pass\n },\n (err, data) => (err ? reject(err) : resolve({ id, path: uploadPath, size }))\n )\n\n return pass\n })()\n )\n .on('error', error => reject(error))\n .on('data', chunk => (size += chunk.length))\n )\n }\n\n logger.info('S3 Bucket Storage is Ready.')\n}\n"]}
1
+ {"version":3,"file":"sftp-s3.js","sourceRoot":"","sources":["../server/sftp-s3.ts"],"names":[],"mappings":"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","sourcesContent":["import AWS from 'aws-sdk'\n\nimport { logger } from '@things-factory/env'\n\nimport { SFTPFILESTORAGE } from './sftp-const'\n\nconst crypto = require('crypto')\n\nconst { PassThrough } = require('stream')\n\nif (SFTPFILESTORAGE && SFTPFILESTORAGE.type == 's3') {\n const S3 = new AWS.S3({\n accessKeyId: SFTPFILESTORAGE.accessKeyId,\n secretAccessKey: SFTPFILESTORAGE.secretAccessKey\n })\n\n SFTPFILESTORAGE.readFolders = async (params, encoding) => {\n let S3params = {\n Bucket: SFTPFILESTORAGE.bucketName,\n Delimiter: '/',\n Prefix: params.path\n }\n\n const result = await S3.listObjects(S3params).promise()\n\n let body = result.Contents\n\n return body\n }\n\n SFTPFILESTORAGE.readFile = async (path, encoding) => {\n const result = await S3.getObject({\n Bucket: SFTPFILESTORAGE.bucketName,\n Key: path\n }).promise()\n\n var body = result.Body\n\n if (encoding) {\n return body.toString(encoding)\n }\n\n return body\n }\n\n SFTPFILESTORAGE.moveFile = async (path, encoding) => {\n const copyResult = await S3.copyObject({\n Bucket: SFTPFILESTORAGE.bucketName,\n CopySource: SFTPFILESTORAGE.bucketName + '/' + path.source,\n Key: path.destination\n }).promise()\n\n const copyBody = copyResult.CopyObjectResult\n\n const deleteResult = await S3.deleteObject({\n Bucket: SFTPFILESTORAGE.bucketName,\n Key: path.source\n }).promise()\n\n return true\n }\n\n /* upload file */\n SFTPFILESTORAGE.uploadFile = ({ stream, filename, uploadPath }) => {\n const id = crypto.randomUUID()\n let size: number = 0\n\n return new Promise<{ id: string; path: string; size: number }>((resolve, reject) =>\n stream\n .pipe(\n (() => {\n var pass = new PassThrough()\n\n S3.upload(\n {\n Bucket: SFTPFILESTORAGE.bucketName,\n Key: uploadPath + '/' + filename,\n Body: pass\n },\n (err, data) => (err ? reject(err) : resolve({ id, path: uploadPath, size }))\n )\n\n return pass\n })()\n )\n .on('error', error => reject(error))\n .on('data', chunk => (size += chunk.length))\n )\n }\n\n logger.info('S3 Bucket Storage is Ready.')\n}\n"]}