forked from chefmee/n00dleswap-frontend
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathupload.js
40 lines (37 loc) · 1.22 KB
/
upload.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
const fs = require("fs");
const FormData = require("form-data");
const rfs = require("recursive-fs");
const basePathConverter = require("base-path-converter");
require('dotenv').config({ path: `.env.local`, override: true });
const JWT = 'Bearer ' + process.env.JWT
console.log(JWT)
const pinDirectoryToPinata = async () => {
const {got} = await import('got');
const url = `https://api.pinata.cloud/pinning/pinFileToIPFS`;
const src = "./build";
var status = 0;
try {
const {dirs, files} = await rfs.read(src);
let data = new FormData();
for (const file of files) {
data.append(`file`, fs.createReadStream(file), {
filepath: basePathConverter(src, file),
});
}
const response = await got(url, {
method: 'POST',
headers: {
"Content-Type": `multipart/form-data; boundary=${data._boundary}`,
"Authorization": JWT
},
body: data
})
.on('uploadProgress', progress => {
console.log(progress);
});
console.log(JSON.parse(response.body));
} catch (error) {
console.log(error);
}
};
pinDirectoryToPinata()