Käyttöohje

← Home

Pikaopas

# 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.

Asennus

Homebrew (macOS)

$ brew install tweenietomatoes/ttl/ttl

Scoop (Windows)

$ scoop bucket add ttl https://github.com/tweenietomatoes/scoop-ttl
$ scoop install ttl

Esikäännetty tiedosto

# 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

$ go install github.com/tweenietomatoes/ttl/cmd/ttl@latest

Lähdekoodista

$ git clone https://github.com/tweenietomatoes/ttl
$ cd ttl && go build -o ttl ./cmd/ttl/
$ sudo mv ttl /usr/local/bin/

Tarkistus

$ ttl version
ttl v1.3.0

Tiedostojen lähettäminen

Peruslähetys

# 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.

Oma salasana

$ ttl send -p mySecretPass -t 1h document.pdf

Poista lukemisen jälkeen

# Tiedosto poistetaan pysyvästi ensimmäisen latauksen jälkeen
$ ttl send -b photo.jpg

Mukautettu TTL

$ 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)

Tiedostojen lataaminen

Interaktiivinen (terminaali)

$ 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.

Pelkällä tokenilla

# 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)

Tulostehakemisto

$ ttl get -o ~/Downloads aBcDeFgHiJ

Oletuksena tiedostot tallennetaan nykyiseen hakemistoon. Käytä -o / --output -lippua määrittääksesi toisen hakemiston.

Salasanalipulla

$ ttl get -p mySecretPass https://ttl.space/aBcDeFgHiJ

Selain

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.

Salasanojen hallinta

Salasana toimii salausavaimen lähtöarvona. Se ei koskaan poistu laitteeltasi eikä sitä koskaan lähetetä palvelimelle. Sen voi antaa viidellä tavalla:

1. Automaattinen luonti (vain lähetyksessä)

$ 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.

2. Interaktiivinen syöttö

$ 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.

3. Lippu: -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.

4. Stdin: --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).

5. Tiedosto: --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.

6. Automaattisesti havaittu tiedosto: ttl.password

Jos salasanaa ei anneta erikseen, CLI etsii ttl.password-tiedostoa ohjelman vierestä ja sitten ~/.ttl/password. Ensimmäistä riviä käytetään salasanana.

Vain yhtä nimenomaista salasanalähdettä voidaan käyttää kerrallaan. -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ä.

Valintojen viite

Send-liput

LippuKuvausOletus
-p, --password PSalaussalasanainteraktiivinen
--password-stdinLue salasana stdinistä
--password-file FLue salasana tiedostosta
-t, --ttl DURVoimassaoloaika7d
-b, --burnPoista lukemisen jälkeen (kertakäyttöinen lataus)pois
--timeout DURSiirron aikakatkaisuauto
--server URLPalvelimen URLhttps://ttl.space
-h3, --http3Yritä HTTP/3 (QUIC), varayhteydellä TCPpois
--jsonJSON-tuloste stdoutiin (skripteille ja tekoälyagenteille)pois

Get-liput

LippuKuvausOletus
-p, --password PPurkusalasanainteraktiivinen
--password-stdinLue salasana stdinistä
--password-file FLue salasana tiedostosta
-o, --output DIRTulostehakemistonykyinen hakemisto
--timeout DURSiirron aikakatkaisuauto
-h3, --http3Yritä HTTP/3 (QUIC), varayhteydellä TCPpois
--jsonJSON-tuloste stdoutiin (skripteille ja tekoälyagenteille)pois

TTL-arvot

Ilmainen: 5m 10m 15m 30m 1h 2h 3h 6h 12h 24h 1d 2d 3d 4d 5d 6d 7d

Orbit lisää: 14d 15d 28d 30d

Aikakatkaisu

Oletus: auto — arvioidaan tiedostokoon perusteella olettaen 1 Mbps + 2 minuutin puskuri (vähintään 5 minuuttia). Ohita komennolla --timeout 10m tai --timeout 1h.

Esimerkkejä

Skripti: Varmuuskopiointi ja lähetys

#!/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

Linkin kopiointi leikepöydälle (macOS)

$ ttl send -p mypass123 file.pdf | pbcopy

Linkin kopiointi leikepöydälle (Linux)

$ ttl send -p mypass123 file.pdf | xclip -sel clip

Kertakäyttöinen salaisuus itsetuholla

$ echo "$DB_PASSWORD" | ttl send --password-stdin -b -t 5m credentials.env
# Linkki toimii tarkalleen kerran, vanhenee 5 minuutin kuluttua

JSON-tila (skriptit & tekoälyagentit)

# 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-paketti

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

HTTP API

Lataus ja haku vaativat CLI:n salausputken (Argon2id + XChaCha20-Poly1305 + lohko-AEAD). Skripteihin käytä ttl send / ttl get tai --json-tilaa. Alla olevat päätepisteet ovat Orbit-tiedostonhallintaa varten.

Listaa tiedostot (Orbit)

$ 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.

Poista tiedosto (Orbit)

$ 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.

Virhevastaukset

TilaMerkitys
401Virheellinen tai vanhentunut API-avain
403Toiminto vaatii Orbit-paketin
404Tiedostoa ei löydy tai se ei kuulu tälle avaimelle
429Pyyntöraja ylitetty

Rajoitukset

RajoitusIlmainenOrbit
Maks. tiedostokoko2 GB10 GB
Maks. TTL7 päivää30 päivää
Latauksia päivässä1050
Tallennuskiintiö250 GB
Listaus & poisto
Min. salasanan pituus8 merkkiä
Pyynnöt per IP30 per 10 sekuntia
Yhteydet per IP10 samanaikaista

Salaus

Tiedostot salataan laitteellasi ennen lähettämistä. Palvelin tallentaa vain salatekstiä eikä voi purkaa tiedostojasi.

KomponenttiAlgoritmi / Arvo
Avaimen johtaminenArgon2id (time=3, memory=64 MB, parallelism=1)
SalausalgoritmiXChaCha20-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.