-
Reinder Kraaij authoredReinder Kraaij authored
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
deployacc.js 2.06 KiB
require('dotenv').config();
const fs = require('fs');
const path = require('path');
var mime = require('mime-types')
const Minio = require('minio');
const minioClient = new Minio.Client({
endPoint: 'monitor.control.lofar',
port: 9000,
useSSL: false,
accessKey: process.env.MINIO_ACCESS_KEY,
secretKey: process.env.MINIO_SECRET,
});
const bucketName = "tmss-frontend-web-acceptance";
const sourceFolder = 'build';
async function uploadRecursive(folderPath) {
const items = fs.readdirSync(folderPath);
for (const item of items) {
const itemPath = path.join(folderPath, item);
if (fs.statSync(itemPath).isDirectory()) {
await uploadRecursive(itemPath); // If it's a directory, recursively upload its contents
} else {
// If it's a file, upload it to Minio
uploadFile(itemPath, item);
}
}
}
async function uploadFile(itemPath, item) {
const minioObjectName = path.relative("", itemPath).replace(/\\/g, '/');
let mimetype = mime.lookup(minioObjectName);
try {
let metaData = { 'Content-Type': mimetype, };
if (item.endsWith("html") ) { metaData = { 'Content-Type': 'text/html', };}
let putResult = await minioClient.fPutObject(bucketName, minioObjectName, itemPath, metaData);
if (putResult.err) {
console.log(`File "${item}" Not uploaded . {putResult?.err} ${mimetype}`);
}
else {
console.log(`File "${item}" uploaded successfully to ${itemPath} etag: ${putResult?.etag} ${mimetype}`);
}
}
catch (e) {
console.log(`File "${itemPath} ${item}" Not uploaded to ${minioObjectName} ${mimetype} ${e}`);
}
}
async function uploadFolderToMinio() {
try {
// BUcket should exist
/*
const bucketExists = await minioClient.bucketExists(bucketName);
if (!bucketExists) {
console.error(" bucket did not exist, exitting")
return
}
*/
await uploadRecursive(sourceFolder); // Start recursive upload
console.log('Folder uploaded successfully.');
} catch (err) {
console.error('An error occurred:', err);
}
}
uploadFolderToMinio()