Aktar CLI

aktar CLI-documentatie

Elk commando, elke optie en elke uitvoer van aktar, met voorbeelden die je zo kunt plakken. Nieuw hier? Het CLI-overzicht leest sneller.

Overzicht

aktar is een afstandsbediening voor de Aktar-app op dezelfde computer. Je geeft het bestanden, het geeft ze door aan Aktar op 127.0.0.1, en Aktar uploadt ze met de bestemmingen, sleutels, padsjablonen en linkinstellingen die je al hebt ingesteld. De link komt terug in je terminal.

Wat het is

  • Een klein Node.js-commando voor scripts, CI-jobs op je eigen Mac of Windows-computer en editors zoals Typora
  • Een manier om bestanden en het klembord te uploaden, QR-codes te tonen en je bestemmingen en uploadgeschiedenis op te vragen
  • Gratis en open source (MIT), net als de app

Wat het niet is

  • Niet zelfstandig: zonder draaiende Aktar kan het niets uploaden. Het bewaart nooit je opslagsleutels
  • Niet voor Linux-servers of externe machines: het praat alleen met Aktar op dezelfde computer. Gebruik daar de eigen CLI van je opslagprovider

Vereisten

  • Aktar voor Mac 0.4.0 of nieuwer, of Aktar voor Windows, met minstens één bestemming
  • Node.js 18 of nieuwer (Homebrew installeert het voor je)
  • --name, --qr en aktar qr vereisen aktar 0.2.0 of nieuwer
  • De link hergebruiken van een bestand dat al geüpload is, vereist aktar 0.2.0 en Aktar voor Mac 0.10.0 of Aktar voor Windows 0.3.0
  • aktar replace vereist aktar 0.3.0 en Aktar voor Mac 0.14.0 of Aktar voor Windows 0.7.0 of nieuwer

Installeren

Installeer het één keer, met npm of Homebrew. Allebei zetten ze het commando aktar in je pad.

Met npm (macOS en Windows)

npm install -g @getaktar/cli

Met Homebrew (macOS)

brew install getaktar/tap/aktar-cli

Of voer het één keer uit zonder iets te installeren:

npx @getaktar/cli upload file.png

Controleer welke versie je hebt:

aktar --version
0.3.0

Verbinden met Aktar

  1. Open in Aktar voor Mac of Windows Instellingen > Integraties en zet Sta lokale verbindingen toe aan. Aktar luistert dan alleen op 127.0.0.1, poort 47913, tenzij je die daar wijzigt.
  2. Kopieer het token dat eronder staat.
  3. Voer aktar login uit en plak het token bij de prompt Token:. Het blijft verborgen terwijl je typt, en het wordt bij Aktar gecontroleerd voordat het wordt opgeslagen, dus een typfout wordt niet bewaard.
aktar login
Copy the token from Aktar: Settings > Integrations (turn on Allow local connections first).
Token:
Connected to Aktar 0.10.0. Saved to /Users/you/.config/aktar/cli.json

Waar het token wordt bewaard

aktar login slaat het token en de poort op in ~/.config/aktar/cli.json op een Mac (of in $XDG_CONFIG_HOME/aktar/cli.json als je die hebt ingesteld) en in %APPDATA%\aktar\cli.json op Windows. Alleen jouw gebruiker kan het lezen.

cli.json
{
  "token": "…",
  "port": 47913
}

aktar logout verwijdert dat bestand. Om alle clients in één keer buiten te sluiten, klik je in Aktar op Genereer opnieuw naast het token; voer daarna aktar login opnieuw uit met het nieuwe token.

Scripts en CI

Sla op een buildmachine aktar login over en stel AKTAR_TOKEN in (en AKTAR_PORT als je de poort hebt gewijzigd). Die gaan voor het opgeslagen bestand. Aktar moet op die machine draaien, ingelogd in dezelfde gebruikerssessie.

AKTAR_TOKEN="$AKTAR_SECRET" aktar upload dist/app.zip -d Builds
VariabeleWat het doet
AKTAR_TOKENHet token uit Instellingen > Integraties van Aktar. Wordt gebruikt in plaats van het opgeslagen token.
AKTAR_PORTDe poort van Aktars lokale API, als je die hebt gewijzigd. --port gaat ervoor.
NO_COLORTekent QR-codes met gewone tekens in plaats van terminalkleuren.
XDG_CONFIG_HOMEWaar de configuratiemap staat op macOS (standaard ~/.config). Op Windows wordt %APPDATA% gebruikt.

Commando's

Alle commando's praten met Aktar, behalve aktar qr met gewone tekst of een link. Zonder -d gaan uploads naar de bestemming die in de menubalk van Aktar is geselecteerd, en ze verschijnen in Aktars geschiedenis zoals elke andere upload. aktar --help toont dezelfde lijst. Met Aktar voor Mac 0.14.0 of Aktar voor Windows 0.7.0 of nieuwer volgt een upload zonder -d eerst de regels bij Gebruiken voor van de bestemmingen, zodat een afbeelding naar je bestemming voor schermafbeeldingen kan gaan en een build naar een andere.

aktar upload

Uploadt een of meer bestanden en toont per bestand één link, in volgorde, zodra elk bestand klaar is.

Gebruik

aktar upload <file>... [options]

Opties

VlagWaardeBeschrijving
-d, --destination<name|id>Bestemming om naar te uploaden, op naam of ID. Standaard: de bestemming die in Aktar is geselecteerd.
-f, --format<format>Wat er wordt getoond: url (standaard), markdown, html of custom (je eigen sjabloon in Aktar).
--name<name>Upload één bestand onder deze naam. De extensie blijft behouden als de naam er geen heeft.
--folder<path>Behoud de bestandsnaam en upload naar deze map.
--expires<days>Laat de bucket het bestand na 1, 7, 14 of 30 dagen verwijderen. 0 bewaart het.
--qrToon ook een QR-code van elke link.
--jsonToon een JSON-array met alle details van elke upload, in plaats van links.
--port<port>De poort van Aktars lokale API, alleen voor dit commando. Gaat voor AKTAR_PORT en de opgeslagen poort.

Goed om te weten

  • Elk bestand wordt gecontroleerd voordat er iets wordt geüpload: als er een niet bestaat, wordt niets geüpload en stopt aktar met code 2.
  • Als één upload mislukt, gaan de andere gewoon door. Elke fout wordt gemeld op stderr, en de exitcode is 1.
  • Zonder --folder bepaalt het padsjabloon van de bestemming de bestandsnaam, net als bij slepen naar de menubalk. Met --folder houdt het bestand zijn naam in die map.
  • --name werkt met één bestand tegelijk. Schuine strepen worden verwijderd, en de extensie van het bestand wordt toegevoegd als de naam er geen heeft: --name cover uploadt IMG_4021.jpg als cover.jpg. Met --folder is het de naam in de map.
  • --expires accepteert 1, 7, 14 of 30 (dagen), of 0 om het bestand te bewaren. Zonder deze optie blijft het bestand bewaard, wat Verwijder na in Aktar ook is. Het vereist de regels voor automatisch verwijderen van Aktar op die bestemming, en het kan niet worden gecombineerd met --folder.
  • --qr kan niet worden gecombineerd met --json, en --png werkt alleen met aktar qr.
  • In een terminal wordt de voortgang op stderr getoond terwijl een bestand uploadt. Het bestand wordt naar Aktar gestreamd, dus de grootte maakt niet uit, en er is geen tijdslimiet.

Voorbeelden

Eén bestand, één link.
aktar upload screenshot.png
https://files.example.com/2026/10/7f3c2a91.png
Meerdere bestanden, als Markdown: één regel per bestand, in volgorde.
aktar upload *.png -f markdown
![](https://files.example.com/2026/10/1b9e44d0.png)
![](https://files.example.com/2026/10/c2f71a5e.png)
Upload onder een andere naam, naar een map.
aktar upload IMG_4021.jpg --name cover --folder blog/2026
https://files.example.com/blog/2026/cover.jpg
Hetzelfde bestand stond al in de bucket: de link wordt gewoon getoond, en de melding gaat naar stderr.
aktar upload photo.jpg
aktar: photo.jpg: already uploaded, reused the existing link
https://files.example.com/2026/09/4d2a8c61.jpg

aktar upload --clipboard

Uploadt het bestand of de afbeelding op het klembord, net als de eigen klembordsneltoets van Aktar.

Gebruik

aktar upload --clipboard [options]

Opties

VlagWaardeBeschrijving
--clipboardUpload wat er op het klembord staat in plaats van bestanden.
-d, --destination<name|id>Bestemming om naar te uploaden, op naam of ID. Standaard: de bestemming die in Aktar is geselecteerd.
-f, --format<format>Wat er wordt getoond: url (standaard), markdown, html of custom (je eigen sjabloon in Aktar).
--expires<days>Laat de bucket het bestand na 1, 7, 14 of 30 dagen verwijderen. 0 bewaart het.
--qrToon ook een QR-code van elke link.
--jsonToon een JSON-array met alle details van elke upload, in plaats van links.
--port<port>De poort van Aktars lokale API, alleen voor dit commando. Gaat voor AKTAR_PORT en de opgeslagen poort.

Goed om te weten

  • Geef bestanden of --clipboard op, niet allebei.
  • --name en --folder werken alleen met bestanden. -d, -f, --expires, --qr en --json werken zoals bij bestanden.
  • Met --json toont het nog steeds een array, met één item.

Voorbeelden

De schermafbeelding die je net hebt gekopieerd.
aktar upload --clipboard
https://files.example.com/2026/10/9a4c03be.png
Als Markdown, naar een bestemming met de naam Blog.
aktar upload --clipboard -f markdown -d Blog
![](https://blog-assets.example.com/2026/10/e5b2c8a4.png)
Na een dag door de bucket verwijderd.
aktar upload --clipboard --expires 1
https://files.example.com/tmp/1d/2026/10/38f0d7c2.png

aktar replace

Schrijft een nieuw bestand over een upload heen, zodat de sleutel en de link hetzelfde blijven. Iedereen met de link ziet het nieuwe bestand.

Gebruik

aktar replace <upload-id|link|key> <file> [options]

Opties

VlagWaardeBeschrijving
-d, --destination<name|id>Voor een sleutel: de bestemming in wiens bucket die staat, op naam of ID. Standaard: de bestemming die in Aktar is geselecteerd.
-f, --format<format>Wat er wordt getoond: url (standaard), markdown, html of custom (je eigen sjabloon in Aktar).
--qrToon ook een QR-code van elke link.
--jsonToon een JSON-array met alle details van elke upload, in plaats van links.
--port<port>De poort van Aktars lokale API, alleen voor dit commando. Gaat voor AKTAR_PORT en de opgeslagen poort.

Goed om te weten

  • Het eerste argument is een upload-ID of een link uit aktar history (het geschiedenisitem in Aktar wordt bijgewerkt), of anders een sleutel in de bucket van -d (de bestemming die in Aktar is geselecteerd als je die weglaat). Een link die niet in Aktars geschiedenis staat, wordt geweigerd: geef dan de sleutel op met -d.
  • Aktar verwijdert de metadata van het bestand en verkleint het zoals de bestemming aangeeft, maar zet het nooit om naar een ander formaat, dus de extensie van de sleutel blijft. Voor een bestand onder tmp/{N}d/ beginnen de N dagen opnieuw.
  • De sleutel krijgt nooit een nummer en er wordt niets anders geüpload. --folder, --expires, --name en --clipboard zijn niet van toepassing en worden geweigerd.
  • Oude kopieën kunnen nog een tijdje in de cache van een CDN blijven staan. Korte cachetijd van een bestemming of het legen van de Cloudflare-cache in Aktar lost dat op.
  • Vereist Aktar voor Mac 0.14.0 of Aktar voor Windows 0.7.0 of nieuwer.

Voorbeelden

Vervang een upload uit de geschiedenis op ID; de link blijft hetzelfde.
aktar replace 0B6C2F8E-3D1A-4C55-9E2B-7A41D0C3E9F1 report-v2.pdf
https://files.example.com/2026/09/0e7d51b3.pdf
Vervang een sleutel in de bucket van een andere bestemming en toon die als Markdown.
aktar replace docs/guide.pdf guide.pdf -d Blog -f markdown
[guide.pdf](https://blog-assets.example.com/docs/guide.pdf)

aktar qr

Toont een QR-code van een link of willekeurige tekst in de terminal, zodat je die op een telefoon kunt openen. Met een upload-ID toont het de link van die upload en de QR-code ervan.

Gebruik

aktar qr <link|text|upload-id> [--png <file>]

Opties

VlagWaardeBeschrijving
--png<file>Sla de QR-code op als PNG-bestand in plaats van hem te tonen.
--port<port>De poort van Aktars lokale API, alleen voor dit commando. Gaat voor AKTAR_PORT en de opgeslagen poort.

Goed om te weten

  • Geef precies één argument op, en zet tekst met spaties tussen aanhalingstekens.
  • Een upload-ID is de id uit aktar history --json of aktar upload --json. aktar zoekt die op in de laatste 1.000 uploads in Aktars geschiedenis; voor gewone tekst of een link heeft het Aktar helemaal niet nodig.
  • De code wordt zwart op wit getekend in een terminal, welk thema die ook heeft. Als de uitvoer geen terminal is, of NO_COLOR is ingesteld, wordt hij zonder kleuren getekend.
  • --png slaat de QR-code op als PNG in plaats van hem te tonen.

Voorbeelden

Een QR-code voor elke link. De camera van je telefoon opent hem.
aktar qr https://files.example.com/2026/10/demo.mp4
Een upload uit de geschiedenis, opgeslagen als PNG.
aktar qr 0B6C2F8E-3D1A-4C55-9E2B-7A41D0C3E9F1 --png cover-qr.png
Saved to cover-qr.png

aktar login

Controleert een token bij Aktar en slaat het op, zodat de andere commando's verbinding kunnen maken.

Gebruik

aktar login [--token <token>] [--port <port>]

Opties

VlagWaardeBeschrijving
--token<token>Het token, in plaats van de prompt.
--port<port>De poort van Aktar, opgeslagen samen met het token. Standaard 47913.

Goed om te weten

  • In een terminal vraagt het om het token en verbergt het wat je typt. Als de invoer via een pipe binnenkomt, leest het het token daaruit.
  • --token slaat de prompt over, maar dan belandt het token in je shellgeschiedenis. Het via een pipe doorgeven of AKTAR_TOKEN voorkomt dat.
  • Een token dat Aktar weigert, wordt niet opgeslagen, en de exitcode is 3.

Voorbeelden

Het token blijft verborgen terwijl je het typt.
aktar login
Copy the token from Aktar: Settings > Integrations (turn on Allow local connections first).
Token:
Connected to Aktar 0.10.0. Saved to /Users/you/.config/aktar/cli.json
Op een Mac, met het token gekopieerd uit Aktar.
pbpaste | aktar login
Connected to Aktar 0.10.0. Saved to /Users/you/.config/aktar/cli.json
Zonder prompt, voor een gewijzigde poort.
aktar login --token "$AKTAR_SECRET" --port 47920
Connected to Aktar 0.10.0. Saved to /Users/you/.config/aktar/cli.json

aktar logout

Verwijdert het opgeslagen token en de poort.

Gebruik

aktar logout

Opties

Geen opties.

Goed om te weten

  • AKTAR_TOKEN werkt, als het is ingesteld, nog steeds na aktar logout.
  • Het verbreekt de verbinding van andere clients niet. Genereer daarvoor het token opnieuw in Aktar.

Voorbeelden

Vergeet het token.
aktar logout
Logged out.
Daarna vragen commando's je om opnieuw in te loggen (exitcode 3).
aktar status
aktar: Not connected to Aktar yet. Run aktar login with the token from Aktar's Settings > Integrations.

aktar status

Toont met welke Aktar je verbonden bent, op welke poort, welke bestemming in Aktar is geselecteerd en waar het configuratiebestand staat.

Gebruik

aktar status [--json]

Opties

VlagWaardeBeschrijving
--jsonToon JSON in plaats van tekst.
--port<port>De poort van Aktars lokale API, alleen voor dit commando. Gaat voor AKTAR_PORT en de opgeslagen poort.

Goed om te weten

  • Een snelle manier om de verbinding in een script te controleren: het stopt met code 3 als Aktar niet bereikbaar is of het token niet klopt.

Voorbeelden

Verbonden, met de geselecteerde bestemming.
aktar status
Aktar 0.10.0 (build 28) on port 47913
Destination: Screenshots (Cloudflare R2, screenshots)
Config: /Users/you/.config/aktar/cli.json
Hetzelfde als JSON, voor scripts.
aktar status --json
{
  "app": "Aktar",
  "version": "0.10.0",
  "build": "28",
  "apiVersion": 1,
  "defaultDestinationId": "5D1A9C3E-7B2F-4E61-8A0D-3C9B6F2E1A47",
  "outputFormat": "url",
  "port": 47913
}

aktar destinations

Toont je bestemmingen met hun provider, bucket en ID. * markeert de bestemming die in Aktar is geselecteerd.

Gebruik

aktar destinations [--json]

Opties

VlagWaardeBeschrijving
--jsonToon JSON in plaats van tekst.
--port<port>De poort van Aktars lokale API, alleen voor dit commando. Gaat voor AKTAR_PORT en de opgeslagen poort.

Goed om te weten

  • Gebruik een naam of een ID met -d. Bij namen maakt het niet uit of je hoofdletters of kleine letters gebruikt; een ID werkt altijd, ook na een naamswijziging.
  • --json geeft per bestemming id, name, provider, providerName, bucket, publicBaseURL en isDefault.

Voorbeelden

De geselecteerde bestemming is gemarkeerd met *.
aktar destinations
* Screenshots  Cloudflare R2  screenshots  5D1A9C3E-7B2F-4E61-8A0D-3C9B6F2E1A47
  Builds  Amazon S3  acme-builds  A83F2C10-6D4B-4F7E-9C1A-2B5E8D0F3C66
  Blog  Backblaze B2  blog-assets  E2C7B9A4-1F3D-4A8E-B6C0-9D5F2A7E4B13
De naam van de geselecteerde bestemming, met jq.
aktar destinations --json | jq -r '.[] | select(.isDefault) | .name'
Screenshots

aktar history

Toont recente uploads, nieuwste eerst: datum, bestandsnaam en link. Woorden na history doorzoeken de geschiedenis.

Gebruik

aktar history [search] [options]

Opties

VlagWaardeBeschrijving
-n, --limit<n>Hoeveel uploads er worden getoond. Standaard 20.
-d, --destination<name|id>Alleen uploads naar deze bestemming, op naam of ID.
--jsonToon JSON in plaats van tekst.
--port<port>De poort van Aktars lokale API, alleen voor dit commando. Gaat voor AKTAR_PORT en de opgeslagen poort.

Goed om te weten

  • Het toont 20 uploads, tenzij je -n opgeeft.
  • --json geeft dezelfde velden als aktar upload --json, inclusief de id van elke upload voor aktar qr.

Voorbeelden

De laatste drie uploads.
aktar history -n 3
2026-10-01  screenshot.png  https://files.example.com/2026/10/7f3c2a91.png
2026-10-01  cover.jpg  https://files.example.com/blog/2026/cover.jpg
2026-09-30  invoice-september.pdf  https://files.example.com/2026/09/0e7d51b3.pdf
Zoek naar facturen in één bestemming.
aktar history invoice -d Screenshots
2026-09-30  invoice-september.pdf  https://files.example.com/2026/09/0e7d51b3.pdf
2026-08-29  invoice-august.pdf  https://files.example.com/2026/08/a6c94f20.pdf
De link van de nieuwste build, met jq.
aktar history -d Builds -n 1 --json | jq -r '.[0].url'
https://acme-builds.s3.amazonaws.com/2026/10/app-3f9c2e1.zip

Opties voor elk commando

VlagWaardeBeschrijving
-h, --helpToon de lijst met commando's en opties.
-v, --versionToon de versie van aktar.
--port<port>De poort van Aktars lokale API, alleen voor dit commando. Gaat voor AKTAR_PORT en de opgeslagen poort.

Uitvoer

Formaten

-f bepaalt wat er per upload wordt getoond. Zonder deze optie toont aktar de kale URL, welk formaat de menubalk van Aktar ook kopieert. Markdown en HTML sluiten afbeeldingen in en linken naar al het andere, net zoals Aktar dat doet.

FormaatGetoond voor photo.jpg
-f urlhttps://files.example.com/2026/10/7f3c2a91.jpgDe link (standaard).
-f markdown![](https://files.example.com/2026/10/7f3c2a91.jpg)Een Markdown-afbeelding, of een Markdown-link voor andere bestanden.
-f html<img src="https://files.example.com/2026/10/7f3c2a91.jpg" alt="">Een <img>-tag, of een <a>-link voor andere bestanden.
-f custom![photo.jpg](https://files.example.com/2026/10/7f3c2a91.jpg)Je sjabloon uit de instellingen van Aktar, met {url}, {filename} en de andere variabelen ingevuld.

stdout en stderr

Standaarduitvoer krijgt alleen de links, één per regel, in de volgorde van de bestanden (en de QR-codes, met --qr). Al het andere gaat naar standaardfout: voortgang, fouten en meldingen zoals aktar: photo.jpg: already uploaded, reused the existing link. Zo krijgen url=$(aktar upload file) en aktar upload *.png > links.txt altijd schone links.

aktar upload photo.jpg
aktar: photo.jpg: already uploaded, reused the existing link
https://files.example.com/2026/09/4d2a8c61.jpg

JSON

--json toont een array met één item per geüpload bestand, nadat ze allemaal klaar zijn. Mislukte uploads worden weggelaten (ze worden op stderr gemeld), dus controleer ook de exitcode.

aktar upload photo.jpg --json
[
  {
    "id": "0B6C2F8E-3D1A-4C55-9E2B-7A41D0C3E9F1",
    "filename": "photo.jpg",
    "objectKey": "2026/10/7f3c2a91.jpg",
    "url": "https://files.example.com/2026/10/7f3c2a91.jpg",
    "destinationId": "5D1A9C3E-7B2F-4E61-8A0D-3C9B6F2E1A47",
    "destinationName": "Screenshots",
    "mimeType": "image/jpeg",
    "size": 482113,
    "createdAt": "2026-10-01T12:00:00Z",
    "expiresAt": null,
    "formats": {
      "url": "https://files.example.com/2026/10/7f3c2a91.jpg",
      "markdown": "![](https://files.example.com/2026/10/7f3c2a91.jpg)",
      "html": "<img src=\"https://files.example.com/2026/10/7f3c2a91.jpg\" alt=\"\">",
      "custom": "![photo.jpg](https://files.example.com/2026/10/7f3c2a91.jpg)"
    },
    "reused": false
  }
]
VeldBetekenis
idDe ID van de upload in Aktars geschiedenis. aktar qr accepteert die.
filenameDe bestandsnaam waaronder Aktar het bestand kent: de eigen naam, of --name.
objectKeyWaar het bestand in de bucket staat.
urlDe link.
destinationIdDe ID van de bestemming.
destinationNameDe naam van de bestemming.
mimeTypeHet type van het bestand, na een eventuele omzetting door Aktar.
sizeGrootte in bytes, zoals opgeslagen.
createdAtWanneer het is geüpload (ISO 8601, UTC).
expiresAtWanneer de bucket het verwijdert, of null als het bewaard blijft.
replacedAtWanneer het bestand voor het laatst is vervangen (ISO 8601, UTC). Ontbreekt tot het wordt vervangen, en bij Aktar-versies vóór Mac 0.14.0 en Windows 0.7.0.
formatsDe link in alle vier formaten: url, markdown, html en custom.
reusedtrue als er niets is geüpload omdat hetzelfde bestand er al stond. Ontbreekt bij Aktar-versies vóór Mac 0.10.0 en Windows 0.3.0.

Exitcodes

CodeBetekenis
0Alles is gelukt.
1Minstens één upload of verzoek is mislukt; de andere zijn wel doorgegaan. Fouten van Aktar zelf, zoals automatisch verwijderen dat niet is ingesteld, komen ook hier terecht.
2Ongeldige argumenten, een bestand dat niet bestaat, of een bestemmingsnaam die Aktar niet kent. Er is niets geüpload.
3Niet ingelogd, Aktar draait niet, de lokale API staat uit, of het token klopt niet.

Recepten

Kopiëren, bestandsnamen aanpassen, klaar. Elk recept gebruikt alleen wat hierboven is beschreven.

De link in een variabele bewaren

Alleen de link komt op standaarduitvoer, dus command substitution krijgt precies de URL. || exit 1 stopt het script als de upload is mislukt.

url=$(aktar upload build/report.pdf) || exit 1
echo "Report: $url"
Report: https://files.example.com/2026/10/0e7d51b3.pdf

Een build uploaden en de link posten

Zip een build, upload die naar een bestemming met de naam Builds onder de korte hash van de commit, en post de link naar elke webhook die JSON accepteert (een chatkanaal, een issuetracker, je eigen endpoint). set -e stopt voor het posten als de upload mislukt.

#!/bin/sh
set -e
zip -qr app.zip dist
url=$(aktar upload app.zip -d Builds --name "app-$(git rev-parse --short HEAD)")
curl -fsS -X POST "$WEBHOOK_URL" \
  -H 'Content-Type: application/json' \
  -d "{\"text\": \"New build: $url\"}"

Een Makefile-target

make share uploadt het rapport onder de datum van vandaag en bewaart de link in .last-link. In een Makefile geeft $$ een $ door aan de shell, en de commandoregel begint met een tab.

Makefile
share: dist/report.pdf
	aktar upload dist/report.pdf --name "report-$$(date +%F)" | tee .last-link

Afbeeldingsuploader voor Typora

Open in Typora Settings > Image, kies Custom Command als image uploader en vul het volledige pad naar aktar in (het pad dat which aktar toont), gevolgd door upload. Typora geeft de paden van de afbeeldingen door en leest één link per regel.

/opt/homebrew/bin/aktar upload

Stap voor stap, met de instelling When Insert…: Typora-afbeeldingen uploaden naar S3.

Uploaden vanuit de Finder of Opdrachten

Voeg op een Mac een actie Run Shell Script toe aan een opdracht, of aan een snelle taak in Automator die bestanden ontvangt in de Finder, en stel in dat de invoer as arguments wordt doorgegeven. Opdrachten en Automator laden het PATH van je shell niet, vandaar de eerste regel. Selecteer bestanden, voer het uit, en de links staan op het klembord.

export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH"
aktar upload "$@" | pbcopy
osascript -e 'display notification "Link copied" with title "aktar"'

Het uploadt bestanden, geen mappen. Meerdere bestanden geven meerdere links, één per regel.

Tijdelijke bestanden

Laat de bucket een log, een schermopname of iets anders dat niet hoeft te blijven zelf verwijderen. De bestemming heeft eerst de regels voor automatisch verwijderen van Aktar nodig: stel die één keer in via Verwijder na in de menubalk van Aktar of in de instellingen van de bestemming.

aktar upload crash.log --expires 1
aktar upload screen-recording.mov --expires 7 --qr

Verlopende bestanden komen onder tmp/1d/, tmp/7d/ enzovoort in de bucket, en de bucket verwijdert ze ook als Aktar niet draait.

Een link openen op je telefoon

--qr toont een QR-code onder de link; richt de camera van je telefoon op de terminal. Om hem later opnieuw te tonen, geef je de ID van een upload door aan aktar qr, hier de nieuwste upload die overeenkomt met ‘demo’.

aktar upload demo.mp4 --qr
aktar qr "$(aktar history demo -n 1 --json | jq -r '.[0].id')"

Windows PowerShell

Hetzelfde werkt in PowerShell. $LASTEXITCODE bevat de exitcode, en ConvertFrom-Json leest --json.

PowerShell
$url = aktar upload .\dist\app.zip -d Builds
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
Set-Clipboard $url

$upload = aktar upload .\report.pdf --json | Out-String | ConvertFrom-Json
$upload.formats.markdown

Wat Aktar voor je doet

De CLI geeft alleen bestanden door; Aktar doet de rest, met de instellingen van elke bestemming. Alles wat je in de app hebt ingesteld, geldt dus ook voor aktar upload, zonder extra opties, en de link die je krijgt is die van het bestand zoals het is opgeslagen.

  • Padsjablonen

    Het objectpad van de bestemming bepaalt de bestandsnaam, met {year}, {uuid}, {filename} en de rest. {md5} en {sha256} geven bestanden een naam op basis van hun inhoud.

  • Beeldbewerking

    Als de bestemming afbeeldingen omzet naar WebP of AVIF, comprimeert of verkleint, krijgen uploads via de CLI dezelfde behandeling, en wijst de link naar het omgezette bestand.

  • Fotometadata

    Afbeeldingsmetadata in de standaardinstellingen voor uploads van de bestemming verwijdert de locatie uit foto's, of alle metadata, voordat ze je computer verlaten.

  • Zelfde bestand, zelfde link

    Met Hergebruik links voor dubbele bestanden aan krijgt dezelfde inhoud in dezelfde bestemming de bestaande link in plaats van een tweede upload. aktar meldt dat op stderr.

  • Grote bestanden

    Grote bestanden gaan in delen omhoog, zonder limiet van 5 GB, worden na een verbroken verbinding opnieuw geprobeerd en gaan verder waar ze waren gestopt. aktar streamt het bestand naar Aktar en laadt het dus nooit in het geheugen.

  • Openbare of tijdelijke links

    Of de link openbaar is of een tijdelijke (presigned) link die ook werkt voor een privébucket, kiest de bestemming, net als in de app.

Dubbele links, beeldbewerking, {md5} en {sha256} en uploads in delen kwamen met Aktar voor Mac 0.10.0 en Windows 0.3.0: wat er nieuw is in 0.10.0.

Problemen oplossen

Foutmeldingen van aktar beginnen met aktar: en gaan naar stderr. De exitcode vertelt je wat voor probleem het is.

Aktar isn't running, or its local API is turned off

Open Aktar en controleer of Sta lokale verbindingen toe aan staat in Instellingen > Integraties. Als je daar de poort hebt gewijzigd, geef die dan op met --port of AKTAR_PORT, of voer aktar login --port opnieuw uit. Exitcode 3.

Not connected to Aktar yet

Er is geen opgeslagen token en geen AKTAR_TOKEN. Voer aktar login uit met het token uit Instellingen > Integraties van Aktar. Exitcode 3.

The token doesn't match Aktar's anymore

Het token is opnieuw gegenereerd in Aktar, of er zit een typfout in. Voer aktar login opnieuw uit met het huidige token. Als AKTAR_TOKEN is ingesteld, gaat dat voor het opgeslagen token, dus werk het ook bij of verwijder het. Exitcode 3.

Auto-delete isn't set up for this destination

--expires heeft de regels voor automatisch verwijderen van de bucket nodig. Stel die één keer in via Verwijder na in de menubalk van Aktar of in de instellingen van de bestemming, of upload zonder --expires. Exitcode 1.

No destination named "…"

De melding toont de namen die Aktar kent. Controleer de spelling, zet namen met spaties tussen aanhalingstekens (-d "Client work"), of gebruik de ID uit aktar destinations. Exitcode 2.

Een grote upload duurt lang

Dat is de snelheid van de opslagprovider: aktar heeft geen tijdslimiet voor uploads en toont in een terminal de voortgang op stderr. Laat Aktar draaien tot het klaar is. Als de verbinding wegvalt of Aktar stopt (Aktar closed the connection before the request finished), upload hetzelfde bestand dan opnieuw: Aktar voor Mac 0.10.0 en Windows 0.3.0 gaan verder vanaf het laatste deel.

aktar start niet: SyntaxError of parseArgs

Je Node.js is ouder dan versie 18. Controleer het met node --version en werk het bij, of installeer aktar met Homebrew, dat zijn eigen Node.js meebrengt.

PowerShell meldt dat het uitvoeren van scripts is uitgeschakeld

Het uitvoeringsbeleid van PowerShell blokkeert het script dat npm voor aktar installeert. Voer in plaats daarvan aktar.cmd uit, of sta lokale scripts één keer toe met Set-ExecutionPolicy -Scope CurrentUser RemoteSigned.