Skip to content

Instantly share code, notes, and snippets.

@sotnikov-link
Created July 30, 2021 12:35
Show Gist options
  • Save sotnikov-link/f9b073a416af187a0d887a55b4e169d9 to your computer and use it in GitHub Desktop.
Save sotnikov-link/f9b073a416af187a0d887a55b4e169d9 to your computer and use it in GitHub Desktop.
// saveFile.mjs
// Node.js v. 14.17
import { mkdir, writeFile } from "fs";
import ky from "ky-universal";
import { join, parse } from "path";
import { promisify } from "util";
const makeDirectory = promisify(mkdir);
const overwriteFile = promisify(writeFile);
export const saveFile = async (
/** @type {string} */
url
) => {
const response = await ky.get(url, {
headers: {
cookie:
"your.token=something;",
},
});
const buffer = await response.arrayBuffer();
const { pathname } = new URL(url);
const { dir } = parse(pathname);
const directory = join(".", dir);
const path = join(".", pathname);
await makeDirectory(directory, { recursive: true });
await overwriteFile(path, Buffer.from(buffer));
console.log("saved", url);
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment