# Exemple simple
Dans cet exemple, vous verrez comment importer nos dépendances et comment les utiliser.
# Import
Ajoutez le package à votre projet :
deno add @dftp/server
Puis importez :
import { Server } from "@dftp/server";
# Options du serveur
Créez une instance de Server avec ces options :
const server = new Server({ port: 21 });
# Avec support TLS/SSL
const server = new Server({
port: 21,
cert: Deno.readTextFileSync("cert.pem"),
key: Deno.readTextFileSync("key.pem"),
});
# Gérer les connexions
Attendez les connexions et gérez l'authentification avec l'événement on("login") :
for await (const conn of server) {
conn.on("login", async ({ username, password }, resolve, reject) => {
if (username === "admin" && password === "secret") {
resolve({ root: "/srv/ftp", uid: 1000, gid: 1000 });
} else {
reject();
}
});
}
# Exemple complet
import { Server } from "@dftp/server";
const server = new Server({ port: 21 });
console.log("Serveur FTP en écoute sur le port 21");
for await (const conn of server) {
conn.on("login", async ({ username, password }, resolve, reject) => {
if (username === "admin" && password === "secret") {
resolve({ root: "/srv/ftp", uid: 1000, gid: 1000 });
} else {
reject();
}
});
}
# Avec TLS/SSL
import { Server } from "@dftp/server";
const server = new Server({
port: 21,
cert: Deno.readTextFileSync("cert.pem"),
key: Deno.readTextFileSync("key.pem"),
});
console.log("Serveur FTP avec TLS en écoute sur le port 21");
for await (const conn of server) {
conn.on("login", async ({ username, password }, resolve, reject) => {
if (username === "admin" && password === "secret") {
resolve({ root: "/srv/ftp", uid: 1000, gid: 1000 });
} else {
reject();
}
});
}