@tpisto/ftp-any-get
v0.1.7
Published
Node.js native module to get file from FTP, FTPS and SFTP sources.
Downloads
335
Readme
Node.js native module to get file from FTP, FTPS and SFTP sources.
ftp-any-get
Motivation 🧐
- Easy to install
- Easy to use. Just single async function: "getFile".
- 0 npm package dependencies
How to use 📚
Get file from the ftp server (index.mjs)
import { getFile } from "@tpisto/ftp-any-get"
async function main() {
// Fetch from FTP server
let ftpFile = await getFile("ftp://demo:[email protected]/my-file.txt");
// Fetch from FTP server using TLS
let ftpsFile = await getFile("ftps://demo:[email protected]/my-file.txt");
// Fetch file using SFTP. SFTP runs over the SSH protocol.
let sftpFile = await getFile("sftp://demo:[email protected]/my-file.txt");
}
main();
If you want to accept_invalid_certs 😮, you can disable cert checks by adding "accept_invalid_certs" parameter to function.
import { getFile } from "@tpisto/ftp-any-get"
async function main() {
// Fetch from FTP server using TLS and use "danger_accept_invalid_certs"
let ftpsFile = await getFile("ftps://demo:[email protected]/my-file.txt", true);
}
main();
Install ☁
npm install @tpisto/ftp-any-get
or
yarn add @tpisto/ftp-any-get
Supported platforms (macOS M1 and x86_64, Linux ARM and x86_64)
- x86_64-apple-darwin
- aarch64-apple-darwin
- x86_64-unknown-linux-gnu
- aarch64-unknown-linux-gnu
Install notes (Ubuntu/Debian)
⚠️ You need to have "ca-certificates" installed in the system. For example "node:16" docker container has that already, but "node:16-slim" does not. So in "slim" containers you need to install "ca-certificates" package. If you do not have "ca-certificates" in your system, you can use "FTP" and "SFTP", but "FTPS" will fail with error thread 'tokio-runtime-worker' panicked at 'called `Result::unwrap()` on an `Err` value: SecureError("error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed:ssl/statem/statem_clnt.c:1914: (unable to get local issuer certificate)")', src/ftp_ftps.rs:24:8
Automatically tested Node.js versions
| | node12 | node14 | node16 | | --------------------- | ------ | ------ | ------ | | macOS x64 | ✓ | ✓ | ✓ | | macOS aarch64 | ✓ | ✓ | ✓ | | Linux x64 gnu | ✓ | ✓ | ✓ | | Linux aarch64 gnu | ✓ | ✓ | ✓ |