Doli u zhvillua versioni i parë i rëndësishëm i serverit , i cili mundëson qasje të largët në skedarë përmes protokoleve SFTP, SCP/SSH dhe Rsync. Përveç kësaj, SFTPGo mund të përdoret për të ofruar qasje në repo Git duke përdorur protokollin SSH. Të dhënat mund të kthehen si nga sistemi lokal i skedarëve ashtu edhe nga depo të jashtme, të pajtueshme me Amazon S3 dhe Google Cloud Storage. Për ruajtjen e bazës së përdoruesve dhe metadatan janë të nevojshme DB me mbështetje SQL ose formati çelës/vlerë, si PostgreSQL 9.4+, MySQL 5.6+, SQLite 3.x ose . Gjithashtu, ekziston një mod i ruajtjes së metadatan në memorien e përkohshme, i cili nuk kërkon lidhje me një DB të jashtme. Kodi i projektit është shkruar në gjuhën Go dhe në përputhje me licencën GPLv3.
Karakteristikat kryesore:
- Për çdo llogari aplikohet izolimi chroot, i cili kufizon aksesin në katalogun e shtëpisë së përdoruesit. Është e mundur të krijohen katalogë virtualë që i referohen të dhënave jashtë katalogut të shtëpisë së përdoruesit.
- Llogaritë ruhet në një bazë virtuale përdoruesish, e cila nuk përputhet me DB-në sistemike të përdoruesve. Për ruajtjen e DB-së së përdoruesve mund të përdoren SQLite, MySQL, PostgreSQL, bbolt dhe ruajtja në memorie. Ofrohen mjete për të përputhur llogaritë virtuale me ato sistemike — është e mundur përputhja direkte ose arbitrare (një përdorues sistemik mund të përputhet me një përdorues tjetër virtual).
- Mbështetet autentifikimi me çelësa publikë, çelësa SSH dhe fjalëkalime (përfshirë autentifikimin interaktiv me futjen e fjalëkalimit nga tastiera). Është e mundur lidhja e disa çelësave për secilin përdorues, si dhe konfigurimi i autentifikimit me shumë faktorë dhe shumë hapa (për shembull, në rastin e autentifikimit të suksesshëm me çelës, mund të kërkohet gjithashtu një fjalëkalim).
- Çdo përdorues ka mundësi të konfigurojë metoda të ndryshme autentikimi, si dhe të përcaktojë metoda të veçanta, që realizohen përmes thirrjes së programeve autentifikues të jashtme (p.sh., për autentikimin përmes LDAP) ose dërgimit të kërkesave përmes API HTTP.
- është e mundur të lidhen përpunues të jashtëm ose thirrje HTTP API për ndryshimin dinamik të parametreve të përdoruesit, të thirrura para hyrjes së përdoruesit. Mbështetet i përdoruesve kur lidhen.
- Mbështetje për kuota individuale për madhësinë e të dhënave dhe numrin e skedarëve.
- Mbështetje për kufizimin e bandwidth-it me konfigurim të ndarë të kufizimeve për trafik hyrës dhe dalës, si dhe kufizime për numrin e lidhjeve njëkohëshe.
- Mjetet e ndarjes së aksesit, që veprojnë në lidhje me përdoruesin ose katalogun (mund të kufizojnë shikimin e listës së skedarëve, të ndalojnë shkarkimin, ngarkimin, rishkrimin, fshirjen, rinovimin ose ndryshimin e të drejtave të aksesit, të ndalojnë krijimin e katalogëve ose lidhjeve simbolike etj.).
- Për çdo përdorues mund të përcaktohen kufizime të veçanta të rrjetit, për shembull, mund të lejohet hyrja vetëm nga IP ose nëndivizione të caktuara.
- Mbështetet lidhja e filtrave të ngarkesës së përmbajtjes në lidhje me përdoruesit dhe katalogët e veçantë (për shembull, mund të bllokoni ngarkimin e skedarëve me një zgjerim të caktuar).
- Është e mundur lidhja e përpunuesve që aktivizohen gjatë operacioneve të ndryshme me skedarin (ngarkim, fshirje, rinovim, etj.). Përveç thirrjes së përpunuesve, mbështetet dërgimi i njoftimeve në formën e kërkesave HTTP.
- Mbarimi automatik i lidhjeve të paaktivizuara.
- Përditësimi atomar i konfiguracionit pa ndërprerjen e lidhjeve.
- i metrikave për monitorim në Prometheus.
- Mbështetet protokolli HAProxy PROXY për organizimin e balancimit të ngarkesës ose për proksimin e lidhjeve në shërbimet SFTP/SCP pa humbur informacion për IP-në origjinë të përdoruesit.
- për menaxhimin e përdoruesve dhe katalogëve, krijimin e kopjeve rezervë dhe formimin e raporteve për lidhjet aktive.
- (http://127.0.0.1:8080/web) për konfigurimin dhe monitorimin (mbështetet gjithashtu konfigurimi përmes skedarëve të zakonshëm të konfigurimeve).
- Mundësia për të caktuar cilësimet në formate JSON, TOML, YAML, HCL dhe envfile.
- lidhet me SSH me qasje të kufizuar në komandat sistemore. Për shembull, lejohet ekzekutimi i komandave të nevojshme për punën me Git (git-receive-pack, git-upload-pack, git-upload-archive) dhe rsync, si dhe disa komanda të tjera të integruara (scp, md5sum, sha*sum, cd, pwd, sftpgo-copy dhe sftpgo-remove).
- Režimi për ndarjen e një katalogu të përbashkët me gjenerimin automatik të të dhënave për lidhje, të njoftuara përmes multicast DNS.
- Sistemi i integruar për analizimin e performancës.
- Migrimi i thjeshtë i llogarive sistemore Linux.
- dhe logeve në formatin JSON.
Burimi: opennet.ru
