API Request
Copy
import fetch from 'node-fetch';
import FormData from 'form-data';
import fs from 'fs';
/*
Using the following code as a workaround for self-signed certificate
errors is discouraged in production environments.
*/
process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = 0;
//upload multiple files
const files = ["file1.txt", "file2.txt", "file3.txt"];
const apiUrl = "https://your_nexus_server_or_ip/api/upload"; //<-- ! ATTENTION !
for (var i = 0; i < files.length; i++) {
var uploadData = new FormData();
uploadData.append('uploader', fs.createReadStream(files[i]));
uploadData.append('cmd', 'magnas3upload');
uploadData.append('jdata', btoa(JSON.stringify({
id: 'V7dcf7bce3-xxxx-xxxx-xxxx-7e49xxxx1148',
name: 'mystore',
path: 'mystore/', //<-- ! ATTENTION !
operator: 'V7sys2a8bd4a1-xxxx-xxxx-xxxx-ef67xxxxe350',
cloudnode: 'V733553217-xxxx-xxxx-xxxx-fac0xxxx6c65'
})));
const requestOptions = {
method: "POST",
headers: {
"x-access-account": "YOUR_ACCOUNT_ID", //<-- replace
"x-access-authorization": "YOUR_ACCESS_KEY", //<-- replace
"x-secret-key": "YOUR_SECRET_KEY" //<-- replace
},
body: uploadData,
};
fetch(apiUrl, requestOptions)
.then((response) => {
if (!response.ok) {
throw new Error("Connection error");
}
return response.json();
})
.then((data) => {
//process received JSON data
console.log(JSON.stringify(data, null, 2));
if (data.result == "OK") {
console.log("UPLOAD SUCCESSFUL");
} else {
console.log("Error: " + data.message);
}
})
.catch((error) => {
console.log("Error: " + error);
});
}