Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 uid=33(www-data) gid=33(www-data) groups=33(www-data) Safe-mode: OFF (not secure) /var/www/html/space/routes/ drwxr-xr-x | |
| Viewing file: Select action/file-type: import express from 'express';
var router = express.Router();
// Imports your configured client and any necessary S3 commands.
import { PutObjectCommand,ListObjectsV2Command,DeleteObjectsCommand,DeleteObjectCommand } from "@aws-sdk/client-s3";
import { s3Client } from ".././client.js";
import sharp from 'sharp';
import multer from 'multer';
import ShortUniqueId from 'short-unique-id';
//Instantiate
const uid = new ShortUniqueId({ length: 10 });
// const multer = require('multer')
const storage = multer.memoryStorage()
const upload = multer({ storage: storage })
let bucketParams;
var bucket="jiffp";
router.get('/', function(req, res, next) {
res.send("hello world");
});
function uploadNewImage(no_of_files,folder,files) {
var file_location={};
var name;
var result
return new Promise(function(resolve, reject) {
for (let i = 0; i < no_of_files; i++) {
let ud=uid()+".webp";
let file_name=folder+"/"+ud;
sharp(files[i].buffer).resize({ width:1920}).toBuffer()
.then( async function(newFileInfo){
// console.log("Image Resized");
bucketParams = {
Bucket: bucket,
Key: file_name,
Body: newFileInfo,
ContentType: "image/png",
ACL: "public-read",
Preview:newFileInfo,
};
var re=await insert(bucketParams);
if (re=="error") {
resolve({"error":"true" ,"message":"Image Insertion error"});
}else{
name=files[i].originalname.split(".")[0];
file_location[name]=ud;
result = Object.entries(file_location);
if (no_of_files==result.length) {
resolve(result);
}
}
})
.catch(function(err){
// console.log("error "+err.message);
resolve({"error":"true" , "message": err.message});
});
}
});
}
// Uploads the specified file to the chosen path.
export const insert = async (bucketParams) => {
try {
const data = await s3Client.send(new PutObjectCommand(bucketParams));
console.log(
"Successfully uploaded object: " +
bucketParams.Bucket +
"/" +
bucketParams.Key
);
return data;
} catch (err) {
console.log("Error ", err.message);
return "error";
}
};
export const delete_image = async (bucketParams) => {
try {
// const data = await s3Client.deleteObject(bucketParams);
const listCommand = new ListObjectsV2Command(bucketParams);
let list = await s3Client.send(listCommand);
if (list.KeyCount) { // if items to delete
list.Contents.forEach(async (item) => {
// console.log(item.Key);
let deleteCommand = new DeleteObjectCommand({
Bucket: bucket,
Key: item.Key
});
await s3Client.send(deleteCommand); // delete the files
});
return "deleted";
}
} catch (err) {
console.log("Error", err.message);
return err.message;
}
};
router.post("/kyc",upload.array('images',4), async (req, res, next) => {
console.log(req.files.length);
if (!req.files) {
res.locals.data={"error":"true","message":"No Image is selected"};
res.status(200).json(res.locals.data);
}
if (req.files.length===0) {
res.locals.data={"error":"true","message":"No Image is selected"};
res.status(200).json(res.locals.data);
}else if (!req.body.vendor) {
res.locals.data={"error":"true","message":"No Vendor is selected"};
res.status(200).json(res.locals.data);
}else{
let no_of_files=req.files.length;
var folder=req.body.vendor+"/kyc";
var files=req.files;
bucketParams = {
Bucket: bucket,
Prefix: folder,
};
await delete_image(bucketParams);
uploadNewImage(no_of_files,folder,files).then(function(file_location){
console.log(file_location);
if (file_location.hasOwnProperty('error')) {
res.locals.data=file_location;
res.status(500).json({"error":"true", "message":"Something is wrong, Please try again"});
}else{
res.status(200).send({"data":file_location});
}
});
}
});
router.post("/profile",upload.single('image'), async (req, res, next) => {
if (req.file.length===0) {
res.locals.data={"error":"true","message":"No Image is selected"};
res.status(200).json(res.locals.data);
}else if (!req.body.vendor) {
res.locals.data={"error":"true","message":"No Vendor is selected"};
res.status(200).json(res.locals.data);
}else{
var folder=req.body.vendor;
var file=req.file;
let ud=uid()+".webp";
let file_name=folder+"/profile"+"/"+ud;
sharp(file.buffer).resize({ width:1920}).toBuffer()
.then( async function(newFileInfo){
bucketParams = {
Bucket: bucket,
Key: file_name,
Body: newFileInfo,
ContentType: "image/png",
ACL: "public-read",
Preview:newFileInfo,
};
var re=await insert(bucketParams);
if (re=="error") {
res.status(500).json({"error":"true", "message":"Something is wrong, Please try again"});
}else{
res.status(200).send({"data":ud});
}
})
}
});
export { router }
|
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0234 ]-- |