# Tiedoston lähetys — salasana luodaan automaattisesti, linkki + salasana tulostetaan $ ttl send secret.pdf No password provided. Generate one? [Y/n]: Generated password: aB3kL9mX ·✧★◉ Thank goodness, secret.pdf is in orbit (1.2 MB) IMPORTANT! Save your password — required to download and decrypt the file. Password: aB3kL9mX https://ttl.space/aBcDeFgHiJ # Lataaminen — salasana kysytään interaktiivisesti $ ttl get https://ttl.space/aBcDeFgHiJ Enter password: ******** Password verified ◉★✧· Phew, secret.pdf landed safe and sound (1.2 MB)
CLI salaa, lähettää, lataa ja purkaa salauksen automaattisesti. Palvelin ei näe salasanaasi eikä selväkielistä dataasi.
$ brew install tweenietomatoes/ttl/ttl
$ scoop bucket add ttl https://github.com/tweenietomatoes/scoop-ttl $ scoop install ttl
# Lataa omalle alustallesi julkaisuista $ curl -Lo ttl.tar.gz \ https://github.com/tweenietomatoes/ttl/releases/latest/download/ttl_linux_amd64.tar.gz $ tar xzf ttl.tar.gz && sudo mv ttl /usr/local/bin/
$ go install github.com/tweenietomatoes/ttl/cmd/ttl@latest
$ git clone https://github.com/tweenietomatoes/ttl $ cd ttl && go build -o ttl ./cmd/ttl/ $ sudo mv ttl /usr/local/bin/
$ ttl version ttl v1.3.0
# Salasana luodaan automaattisesti, oletus-TTL 7d $ ttl send report.xlsx
Jos salasanaa ei anneta terminaalissa, CLI kysyy:
No password provided. Generate one? [Y/n]:
Paina Enter tai kirjoita y luodaksesi automaattisesti.
$ ttl send -p mySecretPass -t 1h document.pdf
# Tiedosto poistetaan pysyvästi ensimmäisen latauksen jälkeen $ ttl send -b photo.jpg
$ ttl send -t 5m temp-credentials.txt # vanhenee 5 minuutissa $ ttl send -t 30m meeting-link.txt # vanhenee 30 minuutissa $ ttl send -t 6h backup.tar.gz # vanhenee 6 tunnissa $ ttl send -t 1d daily-report.pdf # vanhenee 1 päivässä $ ttl send -t 3d project-archive.zip # vanhenee 3 päivässä $ ttl send -t 5d design-assets.zip # vanhenee 5 päivässä $ ttl send report.xlsx # vanhenee 7 päivässä (oletus)
$ ttl get https://ttl.space/aBcDeFgHiJ Enter password: ******** Password verified ◉★✧· Phew, document.pdf landed safe and sound (4.2 MB)
Salasana luetaan turvallisesti — sitä ei näytetä terminaalissa. Alkuperäinen tiedostonimi palautetaan.
# Voit käyttää pelkkää 10-merkkistä tokenia koko URL-osoitteen sijaan $ ttl get aBcDeFgHiJ Enter password: ******** Password verified ◉★✧· Phew, document.pdf landed safe and sound (4.2 MB)
$ ttl get -o ~/Downloads aBcDeFgHiJ
Oletuksena tiedostot tallennetaan nykyiseen hakemistoon. Käytä -o / --output -lippua määrittääksesi toisen hakemiston.
$ ttl get -p mySecretPass https://ttl.space/aBcDeFgHiJ
Voit myös ladata ja purkaa tiedostoja selaimessa avaamalla linkin suoraan. Verkkokäyttöliittymä käyttää samaa salauskirjastoa ja kysyy salasanasi. Ohjelmiston asennusta ei tarvita.
Salasana toimii salausavaimen lähtöarvona. Se ei koskaan poistu laitteeltasi eikä sitä koskaan lähetetä palvelimelle. Sen voi antaa viidellä tavalla:
$ ttl send notes.txt No password provided. Generate one? [Y/n]: y Generated password: aB3kL9mX
Luo kryptografisesti satunnaisen 8-merkkisen salasanan joukosta [0-9A-Za-z]. Käytettävissä vain send-komennossa terminaalissa.
$ ttl send notes.txt No password provided. Generate one? [Y/n]: n Enter password: ******** Confirm password: ******** $ ttl get https://ttl.space/aBcDeFgHiJ Enter password: ********
Salasanaa ei näytetä eikä tallenneta komentorivihistoriaan. send-komennossa valitset ensin, luodaanko salasana automaattisesti. get-komennossa sinulta kysytään salasana suoraan.
-p / --password$ ttl send -p mySecretPass file.zip $ ttl get --password mySecretPass https://ttl.space/aBcDeFgHiJ
-p / --password näkyy ps aux -tulosteessa ja voi tallentua komentotulkin historiaan (~/.bash_history). Vältä käyttöä jaetuissa ympäristöissä ja skripteissä. Käytä sen sijaan --password-stdin tai --password-file.--password-stdin# Putkittaminen echolla $ echo "mySecretPass" | ttl send --password-stdin backup.tar.gz # Putkittaminen salasananhallinnasta $ pass show ttl/key | ttl send --password-stdin data.zip # Putkittaminen ympäristömuuttujasta $ printenv MY_SECRET | ttl get --password-stdin https://ttl.space/aBcDeFgHiJ # Heredoc $ ttl send --password-stdin report.pdf <<<"mySecretPass"
Lukee ensimmäisen rivin stdinistä. Hyödyllinen skripteissä, CI/CD-putkissa ja automaatiossa. Jos stdin ei ole terminaali eikä salasanalähdettä ole määritetty, CLI päättyy virheeseen (paitsi käytettäessä --json-tilaa, joka luo salasanan automaattisesti).
--password-file$ ttl send --password-file /run/secrets/key report.xlsx $ ttl get --password-file ~/.ttl-key https://ttl.space/aBcDeFgHiJ
Lukee tiedoston ensimmäisen rivin (loppuva rivinvaihto poistetaan). Yhteensopiva Docker Secrets (/run/secrets/), Vault-agenttitiedostojen ja vastaavien mallien kanssa.
ttl.passwordJos salasanaa ei anneta erikseen, CLI etsii ttl.password-tiedostoa ohjelman vierestä ja sitten ~/.ttl/password. Ensimmäistä riviä käytetään salasanana.
-p / --password, --password-stdin ja --password-file eivät ole yhdistettävissä. Automaattisesti havaittu ttl.password-tiedosto tarkistetaan vain, jos mitään näistä ei ole annettu. Vähimmäispituus: 8 merkkiä.| Lippu | Kuvaus | Oletus |
|---|---|---|
-p, --password P | Salaussalasana | interaktiivinen |
--password-stdin | Lue salasana stdinistä | |
--password-file F | Lue salasana tiedostosta | |
-t, --ttl DUR | Voimassaoloaika | 7d |
-b, --burn | Poista lukemisen jälkeen (kertakäyttöinen lataus) | pois |
--timeout DUR | Siirron aikakatkaisu | auto |
--server URL | Palvelimen URL | https://ttl.space |
-h3, --http3 | Yritä HTTP/3 (QUIC), varayhteydellä TCP | pois |
--json | JSON-tuloste stdoutiin (skripteille ja tekoälyagenteille) | pois |
| Lippu | Kuvaus | Oletus |
|---|---|---|
-p, --password P | Purkusalasana | interaktiivinen |
--password-stdin | Lue salasana stdinistä | |
--password-file F | Lue salasana tiedostosta | |
-o, --output DIR | Tulostehakemisto | nykyinen hakemisto |
--timeout DUR | Siirron aikakatkaisu | auto |
-h3, --http3 | Yritä HTTP/3 (QUIC), varayhteydellä TCP | pois |
--json | JSON-tuloste stdoutiin (skripteille ja tekoälyagenteille) | pois |
Ilmainen: 5m 10m 15m 30m 1h 2h 3h 6h 12h 24h 1d 2d 3d 4d 5d 6d 7d
Orbit lisää: 14d 15d 28d 30d
Oletus: auto — arvioidaan tiedostokoon perusteella olettaen 1 Mbps + 2 minuutin puskuri (vähintään 5 minuuttia). Ohita komennolla --timeout 10m tai --timeout 1h.
#!/bin/bash tar czf /tmp/backup.tar.gz /data echo "$BACKUP_KEY" | ttl send --password-stdin -t 6h /tmp/backup.tar.gz rm /tmp/backup.tar.gz
$ ttl send -p mypass123 file.pdf | pbcopy
$ ttl send -p mypass123 file.pdf | xclip -sel clip
$ echo "$DB_PASSWORD" | ttl send --password-stdin -b -t 5m credentials.env # Linkki toimii tarkalleen kerran, vanhenee 5 minuutin kuluttua
# lähetys — salasana luodaan automaattisesti JSON-tilassa $ ttl --json send report.pdf {"ok":true,"link":"https://ttl.space/xK9mQ2vLpA","filename":"report.pdf","size":2097152,"ttl":"7d","burn":false,"password":"aB3kL9mX"} # lataus $ ttl --json get -p aB3kL9mX xK9mQ2vLpA {"ok":true,"filename":"report.pdf","size":2097152,"saved_to":"/home/user/report.pdf"} # virheet palauttavat ok:false {"ok":false,"error":"Link not found"}
--json-tilassa kaikki tuloste on rakenteista JSONia stdoutissa. Jos salasanaa ei anneta lähetyksen yhteydessä, se luodaan automaattisesti ja sisällytetään vastaukseen. Paluukoodi on 0 onnistuessa ja 1 virheessä.
Orbit avaa suuremmat tiedostot (10 GB), pidemmän säilytyksen (30 päivää) ja tiedostonhallinnan (listaus ja poisto).
API-avain havaitaan automaattisesti: ympäristömuuttuja TTL_API_KEY, ttl.key ohjelman vieressä tai ~/.ttl/key. Käytä ttl activate-komentoa avaimen tallentamiseen tai kirjoita se manuaalisesti johonkin näistä paikoista.
# aktivoi avaimesi $ ttl activate ttl_orbit_aBcDeFgHiJ... Orbit plan activated. Key saved to /usr/local/bin/ttl.key # tarkista paketti ja käyttö $ ttl plan Plan: orbit Max file size: 10.0 GB Max TTL: 30 days Uploads per day: Unlimited Usage: Uploads today: 3 Active storage: 1.2 GB / 250.0 GB # lähetä pidennetyllä TTL:llä $ ttl send -t 30d large-backup.tar.gz # listaa viimeisimmät lataukset $ ttl list xK9mQ2vLpA 4.2 MB 2026-03-16 10:30 → 2026-04-15 10:30 [active] https://ttl.space/xK9mQ2vLpA rT7bNw3KpF 912.0 KB 2026-03-15 14:20 → 2026-03-17 14:20 [active (burn)] https://ttl.space/rT7bNw3KpF # poista tiedosto $ ttl delete xK9mQ2vLpA Deleted: xK9mQ2vLpA # poista tallennettu avain $ ttl deactivate Key file removed: /usr/local/bin/ttl.key
ttl send / ttl get tai --json-tilaa. Alla olevat päätepisteet ovat Orbit-tiedostonhallintaa varten.$ curl https://ttl.space/v1/files -H "X-API-Key: ttl_orbit_..." {"files":[{"token":"xK9mQ2vLpA","link":"https://ttl.space/xK9mQ2vLpA","size_bytes":1048576,"created_at":1711800600,"expires_at":1714392600,"burn":false,"expired":false}]}
Palauttaa kaikki tällä avaimella ladatut tiedostot. Vaatii Orbit-paketin.
$ curl -X DELETE https://ttl.space/v1/files/xK9mQ2vLpA -H "X-API-Key: ttl_orbit_..."
Palauttaa 204 No Content onnistuessa. Vaatii Orbit-paketin. Tiedoston on kuuluttava tähän avaimeen.
| Tila | Merkitys |
|---|---|
401 | Virheellinen tai vanhentunut API-avain |
403 | Toiminto vaatii Orbit-paketin |
404 | Tiedostoa ei löydy tai se ei kuulu tälle avaimelle |
429 | Pyyntöraja ylitetty |
| Rajoitus | Ilmainen | Orbit |
|---|---|---|
| Maks. tiedostokoko | 2 GB | 10 GB |
| Maks. TTL | 7 päivää | 30 päivää |
| Latauksia päivässä | 10 | 50 |
| Tallennuskiintiö | — | 250 GB |
| Listaus & poisto | — | ✓ |
| Min. salasanan pituus | 8 merkkiä | |
| Pyynnöt per IP | 30 per 10 sekuntia | |
| Yhteydet per IP | 10 samanaikaista | |
Tiedostot salataan laitteellasi ennen lähettämistä. Palvelin tallentaa vain salatekstiä eikä voi purkaa tiedostojasi.
| Komponentti | Algoritmi / Arvo |
|---|---|
| Avaimen johtaminen | Argon2id (time=3, memory=64 MB, parallelism=1) |
| Salausalgoritmi | XChaCha20-Poly1305 AEAD |
Mikä tahansa salatekstin muutos aiheuttaa salauksen purkamisen epäonnistumisen. Palvelin varmistaa, että lataaja tietää oikean salasanan ennen salatekstin luovuttamista, käyttäen salausavaimesta johdettua yksisuuntaista tokenia.