Aktar CLI

Документация aktar CLI

Все команды, параметры и вывод aktar с примерами, которые можно сразу вставить. Только начинаете? Обзор CLI читается быстрее.

Обзор

aktar - это пульт управления приложением Aktar на том же компьютере. Вы передаете ему файлы, он отправляет их в Aktar на 127.0.0.1, а Aktar загружает их с теми местами назначения, ключами, шаблонами путей и настройками ссылок, которые вы уже задали. Ссылка возвращается в ваш терминал.

Что это

  • Небольшая команда на Node.js для скриптов, CI-задач на вашем собственном Mac или компьютере с Windows и редакторов вроде Typora
  • Способ загружать файлы и содержимое буфера обмена, показывать QR-коды и смотреть ваши места назначения и историю загрузок
  • Бесплатно и с открытым исходным кодом (MIT), как и само приложение

Чем это не является

  • Не самостоятельный инструмент: без запущенного Aktar он ничего не загрузит. Ключи от вашего хранилища у него никогда не хранятся
  • Не для серверов на Linux и удаленных машин: он общается только с Aktar на том же компьютере. Там используйте CLI вашего провайдера хранилища

Требования

  • Aktar для Mac 0.4.0 или новее либо Aktar для Windows, хотя бы с одним местом назначения
  • Node.js 18 или новее (Homebrew установит его за вас)
  • Для --name, --qr и aktar qr нужен aktar 0.2.0 или новее
  • Для повторного использования ссылки на уже загруженный файл нужны aktar 0.2.0 и Aktar для Mac 0.10.0 или Aktar для Windows 0.3.0
  • Для aktar replace нужны aktar 0.3.0 и Aktar для Mac 0.14.0 или Aktar для Windows 0.7.0 или новее

Установка

Установите его один раз через npm или Homebrew. Оба способа добавляют команду aktar в ваш PATH.

Через npm (macOS и Windows)

npm install -g @getaktar/cli

Через Homebrew (macOS)

brew install getaktar/tap/aktar-cli

Или запустите один раз, ничего не устанавливая:

npx @getaktar/cli upload file.png

Проверьте, какая у вас версия:

aktar --version
0.3.0

Подключение к Aktar

  1. В Aktar для Mac или Windows откройте Настройки › Интеграции и включите Разрешить локальные подключения. После этого Aktar слушает только 127.0.0.1, порт 47913, если вы не измените его там же.
  2. Скопируйте токен, показанный под этим переключателем.
  3. Выполните aktar login и вставьте токен в ответ на запрос Token:. При вводе он скрыт, а перед сохранением проверяется в Aktar, так что токен с опечаткой не сохранится.
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

Где хранится токен

aktar login сохраняет токен и порт в ~/.config/aktar/cli.json на Mac (или в $XDG_CONFIG_HOME/aktar/cli.json, если эта переменная задана) и в %APPDATA%\aktar\cli.json в Windows. Прочитать файл может только ваш пользователь.

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

aktar logout удаляет этот файл. Чтобы сразу отключить все клиенты, нажмите Создать заново рядом с токеном в Aktar, а затем снова выполните aktar login с новым токеном.

Скрипты и CI

На сборочной машине пропустите aktar login и задайте AKTAR_TOKEN (и AKTAR_PORT, если вы меняли порт). Они важнее сохраненного файла. Aktar должен быть запущен на этой машине в той же пользовательской сессии.

AKTAR_TOKEN="$AKTAR_SECRET" aktar upload dist/app.zip -d Builds
ПеременнаяДля чего она
AKTAR_TOKENТокен из Настройки › Интеграции в Aktar. Используется вместо сохраненного.
AKTAR_PORTПорт локального API Aktar, если вы его меняли. --port важнее.
NO_COLORРисует QR-коды обычными символами вместо цветов терминала.
XDG_CONFIG_HOMEГде находится папка конфигурации в macOS (по умолчанию ~/.config). В Windows используется %APPDATA%.

Команды

Все команды обращаются к Aktar, кроме aktar qr с обычным текстом или ссылкой. Без -d файлы загружаются в место назначения, выбранное в строке меню Aktar, и появляются в истории Aktar, как и все остальные. aktar --help выводит тот же список. С Aktar для Mac 0.14.0 или Aktar для Windows 0.7.0 и новее загрузка без -d сначала следует правилам Использовать для мест назначения, так что изображение может уйти в место назначения для скриншотов, а сборка в другое.

aktar upload

Загружает один или несколько файлов и выводит по одной ссылке на файл, по порядку, по мере завершения загрузки каждого.

Использование

aktar upload <file>... [options]

Параметры

ФлагЗначениеОписание
-d, --destination<name|id>Место назначения для загрузки, по имени или ID. По умолчанию то, что выбрано в Aktar.
-f, --format<format>Что выводить: url (по умолчанию), markdown, html или custom (ваш шаблон в Aktar).
--name<name>Загрузить один файл под этим именем. Если у имени нет расширения, сохраняется расширение файла.
--folder<path>Сохранить имя файла и загрузить его в эту папку.
--expires<days>Бакет удалит файл через 1, 7, 14 или 30 дней. 0 сохраняет его.
--qrДополнительно вывести QR-код каждой ссылки.
--jsonВывести вместо ссылок JSON-массив со всеми сведениями о каждой загрузке.
--port<port>Порт локального API Aktar, только для этой команды. Важнее AKTAR_PORT и сохраненного порта.

Полезно знать

  • Перед загрузкой проверяется каждый файл: если какого-то нет, ничего не загружается, и aktar завершается с кодом 2.
  • Если одна загрузка не удалась, остальные все равно выполняются. О каждой ошибке сообщается в stderr, а код завершения равен 1.
  • Без --folder имя файлу дает шаблон пути места назначения, как при перетаскивании в строку меню. С --folder файл сохраняет свое имя внутри этой папки.
  • --name работает только с одним файлом за раз. Косые черты удаляются, а если у имени нет расширения, добавляется расширение файла: --name cover загрузит IMG_4021.jpg как cover.jpg. С --folder это имя внутри папки.
  • --expires принимает 1, 7, 14 или 30 (дней) либо 0, чтобы сохранить файл. Без этого параметра файл сохраняется, что бы ни было выбрано в Удалить через в Aktar. Для него нужны правила автоудаления Aktar в этом месте назначения, и его нельзя сочетать с --folder.
  • --qr нельзя сочетать с --json, а --png работает только с aktar qr.
  • В терминале во время загрузки файла прогресс показывается в stderr. Файл передается в Aktar потоком, поэтому его размер не важен, и ограничения по времени нет.

Примеры

Один файл, одна ссылка.
aktar upload screenshot.png
https://files.example.com/2026/10/7f3c2a91.png
Несколько файлов в Markdown: по строке на файл, по порядку.
aktar upload *.png -f markdown
![](https://files.example.com/2026/10/1b9e44d0.png)
![](https://files.example.com/2026/10/c2f71a5e.png)
Загрузка под другим именем в папку.
aktar upload IMG_4021.jpg --name cover --folder blog/2026
https://files.example.com/blog/2026/cover.jpg
Такой же файл уже был в бакете: ссылка выводится как обычно, а примечание уходит в 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

Загружает файл или изображение из буфера обмена, как собственное сочетание клавиш Aktar для буфера обмена.

Использование

aktar upload --clipboard [options]

Параметры

ФлагЗначениеОписание
--clipboardЗагрузить содержимое буфера обмена вместо файлов.
-d, --destination<name|id>Место назначения для загрузки, по имени или ID. По умолчанию то, что выбрано в Aktar.
-f, --format<format>Что выводить: url (по умолчанию), markdown, html или custom (ваш шаблон в Aktar).
--expires<days>Бакет удалит файл через 1, 7, 14 или 30 дней. 0 сохраняет его.
--qrДополнительно вывести QR-код каждой ссылки.
--jsonВывести вместо ссылок JSON-массив со всеми сведениями о каждой загрузке.
--port<port>Порт локального API Aktar, только для этой команды. Важнее AKTAR_PORT и сохраненного порта.

Полезно знать

  • Передайте файлы или --clipboard, но не то и другое сразу.
  • --name и --folder работают только с файлами. -d, -f, --expires, --qr и --json работают так же, как с файлами.
  • С --json выводится все тот же массив, с одной записью.

Примеры

Скриншот, который вы только что скопировали.
aktar upload --clipboard
https://files.example.com/2026/10/9a4c03be.png
В Markdown, в место назначения с именем Blog.
aktar upload --clipboard -f markdown -d Blog
![](https://blog-assets.example.com/2026/10/e5b2c8a4.png)
Бакет удалит файл через день.
aktar upload --clipboard --expires 1
https://files.example.com/tmp/1d/2026/10/38f0d7c2.png

aktar replace

Записывает новый файл поверх загрузки, так что ее ключ и ссылка остаются прежними. Все, у кого есть ссылка, увидят новый файл.

Использование

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

Параметры

ФлагЗначениеОписание
-d, --destination<name|id>Для ключа: место назначения, в бакете которого он лежит, по имени или ID. По умолчанию то, что выбрано в Aktar.
-f, --format<format>Что выводить: url (по умолчанию), markdown, html или custom (ваш шаблон в Aktar).
--qrДополнительно вывести QR-код каждой ссылки.
--jsonВывести вместо ссылок JSON-массив со всеми сведениями о каждой загрузке.
--port<port>Порт локального API Aktar, только для этой команды. Важнее AKTAR_PORT и сохраненного порта.

Полезно знать

  • Первый аргумент - ID загрузки или ссылка из aktar history (запись в истории Aktar обновляется), иначе ключ в бакете места назначения -d (если его не указать, то места назначения, выбранного в Aktar). Ссылка, которой нет в истории Aktar, отклоняется: вместо нее передайте ее ключ с -d.
  • Aktar удаляет метаданные файла и меняет его размер так, как задано в месте назначения, но никогда не конвертирует его в другой формат, поэтому расширение ключа сохраняется. Для файла в tmp/{N}d/ отсчет N дней начинается заново.
  • К ключу никогда не добавляется номер, и больше ничего не загружается. --folder, --expires, --name и --clipboard здесь неприменимы и отклоняются.
  • Старые копии могут еще какое-то время оставаться в кэше CDN. С этим справляются Короткое время кэша места назначения или очистка кэша Cloudflare в Aktar.
  • Нужен Aktar для Mac 0.14.0 или Aktar для Windows 0.7.0 или новее.

Примеры

Замена загрузки из истории по ее ID; ссылка остается прежней.
aktar replace 0B6C2F8E-3D1A-4C55-9E2B-7A41D0C3E9F1 report-v2.pdf
https://files.example.com/2026/09/0e7d51b3.pdf
Замена ключа в бакете другого места назначения с выводом в Markdown.
aktar replace docs/guide.pdf guide.pdf -d Blog -f markdown
[guide.pdf](https://blog-assets.example.com/docs/guide.pdf)

aktar qr

Показывает в терминале QR-код ссылки или любого текста, чтобы открыть его на телефоне. Если передать ID загрузки, показывает ссылку этой загрузки и ее QR-код.

Использование

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

Параметры

ФлагЗначениеОписание
--png<file>Сохранить QR-код в PNG-файл вместо вывода на экран.
--port<port>Порт локального API Aktar, только для этой команды. Важнее AKTAR_PORT и сохраненного порта.

Полезно знать

  • Передайте ровно один аргумент, а текст с пробелами заключите в кавычки.
  • ID загрузки - это id из aktar history --json или aktar upload --json. aktar ищет его среди последних 1000 загрузок в истории Aktar; для обычного текста или ссылки Aktar вообще не нужен.
  • В терминале код рисуется черным по белому, какой бы ни была тема. Если вывод идет не в терминал или задана NO_COLOR, он рисуется без цветов.
  • --png сохраняет QR-код в PNG вместо вывода на экран.

Примеры

QR-код для любой ссылки. Камера телефона откроет ее.
aktar qr https://files.example.com/2026/10/demo.mp4
Загрузка из истории, сохраненная в PNG.
aktar qr 0B6C2F8E-3D1A-4C55-9E2B-7A41D0C3E9F1 --png cover-qr.png
Saved to cover-qr.png

aktar login

Проверяет токен в Aktar и сохраняет его, чтобы остальные команды могли подключаться.

Использование

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

Параметры

ФлагЗначениеОписание
--token<token>Токен вместо запроса.
--port<port>Порт Aktar, сохраняется вместе с токеном. По умолчанию 47913.

Полезно знать

  • В терминале команда запрашивает токен и скрывает то, что вы вводите. Если ввод передан через конвейер, токен читается оттуда.
  • --token позволяет обойтись без запроса, но тогда токен попадет в историю оболочки. Передача через конвейер или AKTAR_TOKEN этого избегают.
  • Токен, который Aktar отклонил, не сохраняется, а код завершения равен 3.

Примеры

Токен скрыт, пока вы его вводите.
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
На Mac, с токеном, скопированным из Aktar.
pbpaste | aktar login
Connected to Aktar 0.10.0. Saved to /Users/you/.config/aktar/cli.json
Без запроса, для измененного порта.
aktar login --token "$AKTAR_SECRET" --port 47920
Connected to Aktar 0.10.0. Saved to /Users/you/.config/aktar/cli.json

aktar logout

Удаляет сохраненные токен и порт.

Использование

aktar logout

Параметры

Без параметров.

Полезно знать

  • AKTAR_TOKEN, если он задан, продолжает работать и после aktar logout.
  • Другие клиенты при этом не отключаются. Для этого создайте токен в Aktar заново.

Примеры

Забыть токен.
aktar logout
Logged out.
После этого команды снова просят войти (код завершения 3).
aktar status
aktar: Not connected to Aktar yet. Run aktar login with the token from Aktar's Settings > Integrations.

aktar status

Показывает, к какому Aktar вы подключены, через какой порт, какое место назначения выбрано в Aktar и где находится файл конфигурации.

Использование

aktar status [--json]

Параметры

ФлагЗначениеОписание
--jsonВывести JSON вместо текста.
--port<port>Порт локального API Aktar, только для этой команды. Важнее AKTAR_PORT и сохраненного порта.

Полезно знать

  • Быстрый способ проверить подключение в скрипте: команда завершается с кодом 3, если Aktar недоступен или токен неверный.

Примеры

Подключено, с выбранным местом назначения.
aktar status
Aktar 0.10.0 (build 28) on port 47913
Destination: Screenshots (Cloudflare R2, screenshots)
Config: /Users/you/.config/aktar/cli.json
То же в JSON, для скриптов.
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

Выводит список ваших мест назначения с провайдером, бакетом и ID. * отмечает то, что выбрано в Aktar.

Использование

aktar destinations [--json]

Параметры

ФлагЗначениеОписание
--jsonВывести JSON вместо текста.
--port<port>Порт локального API Aktar, только для этой команды. Важнее AKTAR_PORT и сохраненного порта.

Полезно знать

  • Передавайте в -d имя или ID. Имена сравниваются без учета регистра; ID работает всегда, даже после переименования.
  • --json выдает для каждого id, name, provider, providerName, bucket, publicBaseURL и isDefault.

Примеры

Выбранное место назначения отмечено *.
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
Имя выбранного места назначения, с помощью jq.
aktar destinations --json | jq -r '.[] | select(.isDefault) | .name'
Screenshots

aktar history

Выводит недавние загрузки, сначала новые: дату, имя файла и ссылку. Слова после history ищутся в истории.

Использование

aktar history [search] [options]

Параметры

ФлагЗначениеОписание
-n, --limit<n>Сколько загрузок вывести. По умолчанию 20.
-d, --destination<name|id>Только загрузки в это место назначения, по имени или ID.
--jsonВывести JSON вместо текста.
--port<port>Порт локального API Aktar, только для этой команды. Важнее AKTAR_PORT и сохраненного порта.

Полезно знать

  • Выводится 20 загрузок, если не передать -n.
  • --json выдает те же поля, что и aktar upload --json, включая id каждой загрузки для aktar qr.

Примеры

Последние три загрузки.
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
Поиск счетов в одном месте назначения.
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
Ссылка на последнюю сборку, с помощью jq.
aktar history -d Builds -n 1 --json | jq -r '.[0].url'
https://acme-builds.s3.amazonaws.com/2026/10/app-3f9c2e1.zip

Параметры для всех команд

ФлагЗначениеОписание
-h, --helpПоказать список команд и параметров.
-v, --versionПоказать версию aktar.
--port<port>Порт локального API Aktar, только для этой команды. Важнее AKTAR_PORT и сохраненного порта.

Вывод

Форматы

-f выбирает, что выводится для каждой загрузки. Без него aktar выводит обычный URL, в каком бы формате ни копировала строка меню Aktar. Markdown и HTML встраивают изображения и дают ссылку на все остальное, так же как это делает Aktar.

ФорматВывод для photo.jpg
-f urlhttps://files.example.com/2026/10/7f3c2a91.jpgСсылка (по умолчанию).
-f markdown![](https://files.example.com/2026/10/7f3c2a91.jpg)Изображение в Markdown или ссылка в Markdown для остальных файлов.
-f html<img src="https://files.example.com/2026/10/7f3c2a91.jpg" alt="">Тег <img> или ссылка <a> для остальных файлов.
-f custom![photo.jpg](https://files.example.com/2026/10/7f3c2a91.jpg)Ваш шаблон из настроек Aktar, с подставленными {url}, {filename} и другими переменными.

stdout и stderr

В стандартный вывод попадают только ссылки, по одной на строку, в порядке файлов (и QR-коды, с --qr). Все остальное идет в стандартный поток ошибок: прогресс, ошибки и примечания вроде aktar: photo.jpg: already uploaded, reused the existing link. Поэтому url=$(aktar upload file) и aktar upload *.png > links.txt всегда получают чистые ссылки.

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

JSON

--json выводит массив с одной записью на каждый загруженный файл, когда загрузятся все. Неудачные загрузки в него не попадают (о них сообщается в stderr), поэтому проверяйте и код завершения.

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
  }
]
ПолеЗначение
idID загрузки в истории Aktar. Его принимает aktar qr.
filenameИмя файла, под которым его знает Aktar: собственное имя файла или --name.
objectKeyГде файл лежит в бакете.
urlСсылка.
destinationIdID места назначения.
destinationNameИмя места назначения.
mimeTypeТип файла после возможной конвертации в Aktar.
sizeРазмер в байтах в том виде, в каком файл сохранен.
createdAtКогда файл был загружен (ISO 8601, UTC).
expiresAtКогда бакет удалит файл, или null, если файл сохраняется.
replacedAtКогда файл в последний раз заменяли (ISO 8601, UTC). Отсутствует, пока файл не заменен, а также в версиях Aktar до Mac 0.14.0 и Windows 0.7.0.
formatsСсылка во всех четырех форматах: url, markdown, html и custom.
reusedtrue, если ничего не загружалось, потому что такой же файл уже был на месте. Отсутствует в версиях Aktar до Mac 0.10.0 и Windows 0.3.0.

Коды завершения

КодЗначение
0Все прошло успешно.
1Хотя бы одна загрузка или запрос не удались; остальные все равно выполнились. Сюда же относятся ошибки самого Aktar, например ненастроенное автоудаление.
2Неверные аргументы, несуществующий файл или имя места назначения, которого нет в Aktar. Ничего не загружено.
3Вход не выполнен, Aktar не запущен, его локальный API выключен или токен неверный.

Рецепты

Скопируйте, поправьте имена файлов, готово. В каждом рецепте используется только то, что описано выше.

Сохранить ссылку в переменную

В стандартный вывод попадает только ссылка, поэтому подстановка команды получает ровно URL. || exit 1 останавливает скрипт, если загрузка не удалась.

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

Загрузить сборку и отправить ссылку

Упакуйте сборку в zip, загрузите ее в место назначения с именем Builds под коротким хешем коммита и отправьте ссылку в любой вебхук, принимающий JSON (канал чата, трекер задач, ваш собственный эндпоинт). set -e остановит скрипт до отправки, если загрузка не удастся.

#!/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\"}"

Цель в Makefile

make share загружает отчет под сегодняшней датой и сохраняет ссылку в .last-link. В Makefile $$ передает оболочке $, а строка команды начинается с табуляции.

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

Загрузчик изображений для Typora

В Typora откройте Settings > Image («Настройки › Изображение»), выберите в качестве загрузчика изображений Custom Command («Пользовательская команда») и введите полный путь к aktar (тот, что выводит which aktar), а за ним upload. Typora передает пути к изображениям и читает по одной ссылке на строку.

/opt/homebrew/bin/aktar upload

Пошагово, с настройкой When Insert… («При вставке»): Загрузка изображений из Typora в S3.

Загрузка из Finder или «Быстрых команд»

На Mac добавьте действие Run Shell Script («Запустить скрипт оболочки») в быструю команду или в быстрое действие Automator, которое получает файлы в Finder, и настройте передачу ввода как аргументов. «Быстрые команды» и Automator не загружают PATH вашей оболочки, отсюда первая строка. Выберите файлы, запустите, и ссылки окажутся в буфере обмена.

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

Загружаются файлы, а не папки. Несколько файлов дают несколько ссылок, по одной на строку.

Временные файлы

Лог, запись экрана или что-то еще, что не должно храниться долго, пусть удалит бакет. Сначала месту назначения нужны правила автоудаления Aktar: настройте их один раз через Удалить через в строке меню Aktar или в настройках места назначения.

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

Файлы со сроком хранения попадают в бакете в tmp/1d/, tmp/7d/ и так далее, и бакет удаляет их, даже когда Aktar не запущен.

Открыть ссылку на телефоне

--qr выводит под ссылкой QR-код; наведите камеру телефона на терминал. Чтобы показать его позже снова, передайте ID загрузки в aktar qr, здесь это последняя загрузка, подходящая под «demo».

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

Windows PowerShell

В PowerShell все работает так же. $LASTEXITCODE содержит код завершения, а ConvertFrom-Json читает --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

Что Aktar делает за вас

CLI только передает файлы; все остальное делает Aktar с настройками каждого места назначения. Поэтому все, что вы настроили в приложении, действует и для aktar upload без дополнительных параметров, а ссылка, которую вы получаете, ведет на файл в том виде, в каком он сохранен.

  • Шаблоны путей

    Имя файлу дает путь объекта в месте назначения, с {year}, {uuid}, {filename} и остальными переменными. {md5} и {sha256} называют файлы по их содержимому.

  • Обработка изображений

    Если место назначения конвертирует изображения в WebP или AVIF, сжимает их или меняет размер, с загрузками из CLI происходит то же самое, а ссылка ведет на конвертированный файл.

  • Метаданные фото

    Метаданные изображений в настройках загрузки места назначения удаляют из фото геопозицию или все метаданные еще до того, как они покинут ваш компьютер.

  • Тот же файл, та же ссылка

    Если включено Повторно использовать ссылки для дубликатов файлов, одинаковое содержимое в одном месте назначения получает уже существующую ссылку вместо повторной загрузки. aktar сообщает об этом в stderr.

  • Большие файлы

    Большие файлы загружаются частями, без ограничения в 5 ГБ, повторно отправляются после обрыва соединения и продолжаются с того места, где остановились. aktar передает файл в Aktar потоком, поэтому никогда не загружает его в память целиком.

  • Публичные или временные ссылки

    Будет ли ссылка публичной или временной (presigned), которая работает и для приватного бакета, решает место назначения, как и в приложении.

Ссылки для дубликатов, обработка изображений, {md5} и {sha256} и загрузка частями появились в Aktar для Mac 0.10.0 и Windows 0.3.0: что нового в 0.10.0.

Решение проблем

Сообщения об ошибках aktar начинаются с aktar: и выводятся в stderr. Код завершения подсказывает, что это за проблема.

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

Откройте Aktar и проверьте, что в Настройки › Интеграции включено Разрешить локальные подключения. Если вы меняли там порт, передайте его через --port или AKTAR_PORT либо снова выполните aktar login --port. Код завершения 3.

Not connected to Aktar yet

Нет ни сохраненного токена, ни AKTAR_TOKEN. Выполните aktar login с токеном из Настройки › Интеграции в Aktar. Код завершения 3.

The token doesn't match Aktar's anymore

Токен был создан в Aktar заново или введен с ошибкой. Снова выполните aktar login с текущим токеном. Если задан AKTAR_TOKEN, он важнее сохраненного токена, поэтому обновите или удалите и его. Код завершения 3.

Auto-delete isn't set up for this destination

Для --expires нужны правила автоудаления в бакете. Настройте их один раз через Удалить через в строке меню Aktar или в настройках места назначения либо загружайте без --expires. Код завершения 1.

No destination named "…"

В сообщении перечислены имена, которые есть в Aktar. Проверьте написание, заключите имена с пробелами в кавычки (-d "Client work") или используйте ID из aktar destinations. Код завершения 2.

Большая загрузка идет долго

Это скорость провайдера хранилища: у aktar нет ограничения по времени для загрузок, а в терминале он показывает прогресс в stderr. Не закрывайте Aktar, пока загрузка не завершится. Если соединение оборвалось или Aktar закрылся (Aktar closed the connection before the request finished), загрузите тот же файл еще раз: Aktar для Mac 0.10.0 и Windows 0.3.0 продолжат с последней части.

aktar не запускается: SyntaxError или parseArgs

Ваш Node.js старше версии 18. Проверьте с помощью node --version и обновите его или установите aktar через Homebrew, который приносит собственный Node.js.

PowerShell сообщает, что выполнение сценариев отключено

Политика выполнения PowerShell блокирует скрипт, который npm устанавливает для aktar. Запускайте вместо него aktar.cmd или один раз разрешите локальные скрипты командой Set-ExecutionPolicy -Scope CurrentUser RemoteSigned.