# dosya gönder — parola otomatik oluşturulur, bağlantı + parola yazdırılır $ 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 # indir — parola etkileşimli olarak sorulur $ ttl get https://ttl.space/aBcDeFgHiJ Enter password: ******** Password verified ◉★✧· Phew, secret.pdf landed safe and sound (1.2 MB)
CLI şifreleme, yükleme, indirme ve şifre çözme işlemlerini otomatik yapar. Sunucu parolanızı veya düz metin verinizi asla görmez.
$ brew install tweenietomatoes/ttl/ttl
$ scoop bucket add ttl https://github.com/tweenietomatoes/scoop-ttl $ scoop install ttl
# platformunuz için sürümlerden indirin $ 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
# parolayı otomatik oluştur, varsayılan 7 gün TTL $ ttl send report.xlsx
Terminalde parola belirtilmezse CLI şunu sorar:
No password provided. Generate one? [Y/n]:
Otomatik oluşturmak için Enter'a basın veya y yazın.
$ ttl send -p mySecretPass -t 1h document.pdf
# dosya ilk indirmeden sonra kalıcı olarak silinir $ ttl send -b photo.jpg
$ ttl send -t 5m temp-credentials.txt # 5 dakikada süresi dolar $ ttl send -t 30m meeting-link.txt # 30 dakikada süresi dolar $ ttl send -t 6h backup.tar.gz # 6 saatte süresi dolar $ ttl send -t 1d daily-report.pdf # 1 günde süresi dolar $ ttl send -t 3d project-archive.zip # 3 günde süresi dolar $ ttl send -t 5d design-assets.zip # 5 günde süresi dolar $ ttl send report.xlsx # 7 günde süresi dolar (varsayılan)
$ ttl get https://ttl.space/aBcDeFgHiJ Enter password: ******** Password verified ◉★✧· Phew, document.pdf landed safe and sound (4.2 MB)
Parola güvenli şekilde okunur — terminalde gösterilmez. Orijinal dosya adı korunur.
# tam URL yerine yalnızca 10 karakterlik token kullanabilirsiniz $ ttl get aBcDeFgHiJ Enter password: ******** Password verified ◉★✧· Phew, document.pdf landed safe and sound (4.2 MB)
$ ttl get -o ~/Downloads aBcDeFgHiJ
Varsayılan olarak dosyalar mevcut dizine kaydedilir. Farklı bir dizin belirtmek için -o / --output kullanın.
$ ttl get -p mySecretPass https://ttl.space/aBcDeFgHiJ
Bağlantıyı doğrudan ziyaret ederek dosyaları tarayıcınızda da indirebilir ve şifresini çözebilirsiniz. Web arayüzü aynı şifreleme kütüphanesini kullanır ve parolanızı sorar. Yazılım kurulumu gerekmez.
Parola, şifreleme anahtarının temelidir. Cihazınızdan asla çıkmaz ve sunucuya asla gönderilmez. Beş farklı yolla belirtilebilir:
$ ttl send notes.txt No password provided. Generate one? [Y/n]: y Generated password: aB3kL9mX
[0-9A-Za-z] karakter setinden kriptografik olarak rastgele 8 karakterlik parola oluşturur. Yalnızca terminalde send sırasında kullanılabilir.
$ ttl send notes.txt No password provided. Generate one? [Y/n]: n Enter password: ******** Confirm password: ******** $ ttl get https://ttl.space/aBcDeFgHiJ Enter password: ********
Parola ekrana yansıtılmaz ve kabuk geçmişine kaydedilmez. send sırasında önce otomatik oluşturma teklif edilir; kendi parolanızı yazarsanız doğrulama için ikinci kez girmeniz istenir. get sırasında doğrudan sorulur.
-p / --password$ ttl send -p mySecretPass file.zip $ ttl get --password mySecretPass https://ttl.space/aBcDeFgHiJ
-p / --password ps aux çıktısında görünür ve kabuk geçmişine (~/.bash_history) kaydedilebilir. Paylaşımlı ortamlarda ve betiklerde kullanmaktan kaçının. Bunun yerine --password-stdin veya --password-file kullanın.--password-stdin# echo ile pipe $ echo "mySecretPass" | ttl send --password-stdin backup.tar.gz # parola yöneticisinden pipe $ pass show ttl/key | ttl send --password-stdin data.zip # ortam değişkeninden pipe $ printenv MY_SECRET | ttl get --password-stdin https://ttl.space/aBcDeFgHiJ # heredoc $ ttl send --password-stdin report.pdf <<<"mySecretPass"
Stdin'den ilk satırı okur. Betiklerde, CI/CD işlem hatlarında ve otomasyonda kullanışlıdır. Stdin bir terminal değilse ve parola kaynağı belirtilmemişse CLI hata ile çıkar (--json kullanılıyorsa hariç — bu durumda parola otomatik oluşturulur).
--password-file$ ttl send --password-file /run/secrets/key report.xlsx $ ttl get --password-file ~/.ttl-key https://ttl.space/aBcDeFgHiJ
Dosyanın ilk satırını okur (sondaki satır sonu karakteri kırpılır). Docker secrets (/run/secrets/), Vault agent dosyaları ve benzeri yapılarla uyumludur.
ttl.passwordAçıkça parola verilmezse CLI, önce çalıştırılabilir dosyanın yanındaki ttl.password dosyasını, ardından ~/.ttl/password dosyasını arar. İlk satır parola olarak kullanılır.
-p / --password, --password-stdin ve --password-file birleştirilemez. Otomatik algılanan ttl.password dosyası yalnızca bunların hiçbiri verilmediğinde kontrol edilir. Minimum parola uzunluğu 8 karakterdir.| Bayrak | Açıklama | Varsayılan |
|---|---|---|
-p, --password P | Şifreleme parolası | etkileşimli |
--password-stdin | Parolayı stdin'den oku | |
--password-file F | Parolayı dosyadan oku | |
-t, --ttl SÜRE | Yaşam süresi | 7d |
-b, --burn | Okuduktan sonra sil (tek indirme) | kapalı |
--timeout SÜRE | Transfer zaman aşımı | otomatik |
--server URL | Sunucu URL'si | https://ttl.space |
-h3, --http3 | HTTP/3 (QUIC) dene, TCP'ye geri dön | kapalı |
--json | JSON çıktısını stdout'a yaz (betikler ve yapay zeka ajanları için) | kapalı |
| Bayrak | Açıklama | Varsayılan |
|---|---|---|
-p, --password P | Şifre çözme parolası | etkileşimli |
--password-stdin | Parolayı stdin'den oku | |
--password-file F | Parolayı dosyadan oku | |
-o, --output DIR | Çıktı dizini | mevcut dizin |
--timeout SÜRE | Transfer zaman aşımı | otomatik |
-h3, --http3 | HTTP/3 (QUIC) dene, TCP'ye geri dön | kapalı |
--json | JSON çıktısını stdout'a yaz (betikler ve yapay zeka ajanları için) | kapalı |
Ücretsiz: 5m 10m 15m 30m 1h 2h 3h 6h 12h 24h 1d 2d 3d 4d 5d 6d 7d
Orbit ek: 14d 15d 28d 30d
Varsayılan: otomatik — dosya boyutuna göre 1 Mbps varsayarak + 2 dakika marj ile hesaplanır (minimum 5 dakika). --timeout 10m veya --timeout 1h ile geçersiz kılın.
#!/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 # bağlantı tam olarak bir kez çalışır, 5 dakikada süresi dolar
# gönder — JSON modunda parola otomatik oluşturulur $ ttl --json send report.pdf {"ok":true,"link":"https://ttl.space/xK9mQ2vLpA","filename":"report.pdf","size":2097152,"ttl":"7d","burn":false,"password":"aB3kL9mX"} # indir $ ttl --json get -p aB3kL9mX xK9mQ2vLpA {"ok":true,"filename":"report.pdf","size":2097152,"saved_to":"/home/user/report.pdf"} # hatalar ok:false döndürür {"ok":false,"error":"Link not found"}
--json modunda tüm çıktı stdout'a yapılandırılmış JSON olarak verilir. Gönderim sırasında parola belirtilmezse otomatik oluşturulur ve yanıta dahil edilir. Çıkış kodu başarıda 0, hatada 1'dir.
Orbit daha büyük dosyalar (10 GB), daha uzun saklama (30 gün) ve dosya yönetimi (listeleme ve silme) sunar.
API anahtarı otomatik algılanır: TTL_API_KEY ortam değişkeni, çalıştırılabilir dosyanın yanındaki ttl.key veya ~/.ttl/key. Anahtarı kaydetmek için ttl activate kullanın veya bu konumlardan birine elle yazın.
# anahtarınızı etkinleştirin $ ttl activate ttl_orbit_aBcDeFgHiJ... Orbit plan activated. Key saved to /usr/local/bin/ttl.key # plan ve kullanımı kontrol edin $ 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 # uzatılmış TTL ile gönder $ ttl send -t 30d large-backup.tar.gz # son yüklemeleri listele $ 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 # dosyayı erken sil $ ttl delete xK9mQ2vLpA Deleted: xK9mQ2vLpA # kayıtlı anahtarı kaldır $ ttl deactivate Key file removed: /usr/local/bin/ttl.key
ttl send / ttl get veya --json modunu kullanın. Aşağıdaki uç noktalar Orbit dosya yönetimi içindir.$ 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}]}
Bu anahtarla yüklenen tüm dosyaları döndürür. Orbit planı gerektirir.
$ curl -X DELETE https://ttl.space/v1/files/xK9mQ2vLpA -H "X-API-Key: ttl_orbit_..."
Başarıda 204 No Content döndürür. Orbit planı gerektirir. Dosya bu anahtara ait olmalıdır.
| Durum | Anlam |
|---|---|
401 | Geçersiz veya süresi dolmuş API anahtarı |
403 | Özellik Orbit planı gerektirir |
404 | Dosya bulunamadı veya bu anahtara ait değil |
429 | İstek limiti aşıldı |
| Kısıtlama | Ücretsiz | Orbit |
|---|---|---|
| Maks dosya boyutu | 2 GB | 10 GB |
| Maks TTL | 7 gün | 30 gün |
| Günlük yükleme | 10 | 50 |
| Depolama kotası | — | 250 GB |
| Listeleme ve silme | — | ✓ |
| Min parola uzunluğu | 8 karakter | |
| IP başına istek | 10 saniyede 30 | |
| IP başına bağlantı | 10 eşzamanlı | |
Dosyalar yüklemeden önce cihazınızda şifrelenir. Sunucu yalnızca şifreli metni saklar ve dosyalarınızın şifresini çözemez.
| Bileşen | Algoritma / Değer |
|---|---|
| Anahtar türetme | Argon2id (time=3, memory=64 MB, parallelism=1) |
| Şifre | XChaCha20-Poly1305 AEAD |
Şifreli metinde yapılan herhangi bir değişiklik, şifre çözme işleminin başarısız olmasına neden olur. Sunucu, şifreli metni yayınlamadan önce indirme yapanın doğru parolayı bildiğini, şifreleme anahtarından türetilen tek yönlü bir token kullanarak doğrular.