Share.Ninja

Wiersz poleceń

sninja to Share.Ninja w terminalu. Program udostępnia pliki linkiem i pobiera cudze linki, z tym samym kontem i tymi samymi linkami co aplikacje. Pliki są szyfrowane na Twoim komputerze, zanim go opuszczą, a link otwiera się u odbiorcy w każdej przeglądarce.

Instalacja

macOS 13 lub nowszy na Apple Silicon, przez Homebrew:

brew install shareninjahq/sninja/sninja

Windows 10 lub nowszy, x64, przez winget:

winget install Share.Ninja.CLI

Czy wszystko jest na miejscu, sprawdzisz poleceniem sninja --version.

Udostępnij linkiem

sninja put report.pdf photos/

Program szyfruje pliki, wysyła je i wypisuje link. Wyślij go, komu chcesz: otworzy się w każdej przeglądarce, a odbiorca nie potrzebuje ani aplikacji, ani konta.

Nazwa katalogu udostępnia cały katalog. Ukośnik na końcu albo glob udostępnia tylko jego zawartość:

sninja put build # a folder named build sninja put build/ # the contents of build

Opcje:

-d "Q3 slides"
Opis udostępnienia; zobaczy go każdy, kto otworzy link.
--validity 12h
Jak długo link jest ważny: sekundy albo 90s, 15m, 12h, 7d, 2w; 0 oznacza, że dopóki sam go nie usuniesz. Domyślnie siedem dni. Jeśli poprosisz o więcej, niż pozwala Twój plan, czas zostanie przycięty do maksimum planu, a program o tym powie.
--streams 1
Wysyłanie plików po jednym; domyślnie pięć naraz.

Pobierz

Najpierw można zajrzeć, co jest w środku:

sninja list 'https://share.ninja/#…' --tree

--table pokazuje rozmiary i daty zamiast drzewa, --path docs zaczyna od folderu wewnątrz, --non-recursive pokazuje tylko jeden poziom. Potem:

sninja get 'https://share.ninja/#…' -o ~/Downloads

Pliki trafiają do katalogu podanego w -o, domyślnie do bieżącego. Link ujmij w cudzysłów, inaczej powłoka zje wszystko po znaku #.

--filter 'docs/**/*.pdf'
Pobrać tylko pliki, których ścieżka pasuje do wzorca.
--force
Jeśli nazwa jest zajęta, zapisać plik obok jako „Nazwa 1” zamiast się zatrzymywać.

Przerwane pobieranie wznawia się od miejsca, w którym stanęło: wystarczy uruchomić to samo get jeszcze raz.

Link bez wysyłania do chmury

sninja direct build/ --ttl 3600

Program od razu wypisuje link i serwuje pliki prosto z tego komputera, dopóki działa. Do chmury nie trafia nic. Zatrzymaj go przez Ctrl+C albo podaj czas w sekundach przez --ttl; tak czy inaczej potem nie ma już czego pobierać. O to właśnie chodzi.

Twoje konto

Wszystko do tej pory działa bez konta. Zaloguj się, jeśli chcesz widzieć swoje udostępnienia także na innych urządzeniach:

sninja auth login

Otworzy się przeglądarka do zalogowania. Sesja jest trzymana w systemowym pęku kluczy: sninja auth status ją pokazuje, sninja auth logout ją usuwa.

Nowe urządzenie dostaje dostęp dopiero po potwierdzeniu z urządzenia, któremu już ufasz. Ten terminal nie jest wyjątkiem:

sninja vault join --wait

Program wypisuje odcisk urządzenia i czeka. Zatwierdź prośbę na zaufanym urządzeniu, porównując odcisk, a polecenie zakończy się zalogowane. Bez --wait wraca od razu; sninja vault status pokaże, na jakim etapie jesteś.

Po zalogowaniu:

sninja links
Twoje linki; bez logowania linki tego urządzenia.
sninja link <token>
Jeden link ze szczegółami. Z --mint polecenie wypisze świeży link do tego samego udostępnienia, gotowy do wysłania.

Udostępnienie można na razie zakończyć tylko w aplikacji albo na share.ninja; wiersz poleceń nie ma jeszcze takiego polecenia.

Skrypty

Postęp i status też trafiają na stdout, więc link bierz z ostatnich wierszy, a nie z całego wyjścia. list, link i links potrafią zapisać wynik do pliku JSON: --json <file>. Logi idą na stderr; --verbose robi je bardziej szczegółowymi.