Tổng quan
aktar là chiếc điều khiển từ xa cho ứng dụng Aktar trên cùng máy tính. Bạn đưa tệp cho nó, nó chuyển tệp đến Aktar trên 127.0.0.1, và Aktar tải lên bằng các đích, khóa, mẫu đường dẫn và cài đặt liên kết bạn đã thiết lập sẵn. Liên kết được trả về terminal của bạn.
Nó là gì
- Một lệnh Node.js nhỏ gọn cho script, tác vụ CI trên máy Mac hoặc máy Windows của chính bạn, và các trình soạn thảo như Typora
- Một cách để tải lên tệp và bộ nhớ tạm, hiển thị mã QR, xem các đích và lịch sử tải lên của bạn
- Miễn phí và mã nguồn mở (MIT), giống như ứng dụng
Nó không phải là gì
- Không chạy độc lập: nếu Aktar không chạy, nó không tải lên được gì. Nó không bao giờ giữ khóa lưu trữ của bạn
- Không dành cho máy chủ Linux hay máy từ xa: nó chỉ nói chuyện với Aktar trên cùng máy tính. Ở đó, hãy dùng CLI của chính nhà cung cấp lưu trữ
Yêu cầu
- Aktar cho Mac 0.4.0 trở lên, hoặc Aktar cho Windows, với ít nhất một đích
- Node.js 18 trở lên (Homebrew tự cài cho bạn)
-
--name,--qrvàaktar qrcần aktar 0.2.0 trở lên - Dùng lại liên kết của tệp đã tải lên cần aktar 0.2.0 và Aktar cho Mac 0.10.0 hoặc Aktar cho Windows 0.3.0
-
aktar replacecần aktar 0.3.0 và Aktar cho Mac 0.14.0 hoặc Aktar cho Windows 0.7.0 trở lên
Cài đặt
Cài một lần, bằng npm hoặc Homebrew. Cả hai đều đưa lệnh aktar vào PATH của bạn.
Với npm (macOS và Windows)
npm install -g @getaktar/cliVới Homebrew (macOS)
brew install getaktar/tap/aktar-cliHoặc chạy một lần mà không cần cài gì:
npx @getaktar/cli upload file.pngKiểm tra phiên bản bạn đang có:
aktar --version
0.3.0Kết nối với Aktar
- Trong Aktar cho Mac hoặc Windows, mở Cài đặt > Tích hợp và bật Cho phép kết nối cục bộ. Khi đó Aktar chỉ lắng nghe trên
127.0.0.1, cổng 47913 trừ khi bạn đổi nó ở đó. - Sao chép token hiển thị bên dưới.
- Chạy
aktar loginvà dán token vào lời nhắcToken:. Token được ẩn khi bạn gõ và được kiểm tra với Aktar trước khi lưu, nên token gõ sai sẽ không bị lưu lại.
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.jsonToken được lưu ở đâu
aktar login lưu token và cổng vào ~/.config/aktar/cli.json trên Mac (hoặc $XDG_CONFIG_HOME/aktar/cli.json nếu bạn đã đặt biến này) và vào %APPDATA%\aktar\cli.json trên Windows. Chỉ người dùng của bạn mới đọc được tệp này.
{
"token": "…",
"port": 47913
}aktar logout xóa tệp đó. Để chặn mọi client cùng lúc, hãy nhấp Tạo lại cạnh token trong Aktar, rồi chạy lại aktar login với token mới.
Script và CI
Trên máy build, hãy bỏ qua aktar login và đặt AKTAR_TOKEN (cùng AKTAR_PORT nếu bạn đã đổi cổng). Các biến này được ưu tiên hơn tệp đã lưu. Aktar phải đang chạy trên máy đó, trong cùng phiên đăng nhập của người dùng.
AKTAR_TOKEN="$AKTAR_SECRET" aktar upload dist/app.zip -d Builds| Biến | Tác dụng |
|---|---|
AKTAR_TOKEN | Token từ Cài đặt > Tích hợp của Aktar. Được dùng thay cho token đã lưu. |
AKTAR_PORT | Cổng API cục bộ của Aktar, nếu bạn đã đổi. --port được ưu tiên hơn. |
NO_COLOR | Vẽ mã QR bằng ký tự thường thay vì màu của terminal. |
XDG_CONFIG_HOME | Vị trí thư mục cấu hình trên macOS (mặc định ~/.config). Trên Windows, %APPDATA% được dùng. |
Lệnh
Mọi lệnh đều nói chuyện với Aktar, trừ aktar qr với văn bản thường hoặc một liên kết. Không có -d, tệp được tải lên đích đang chọn trên thanh menu của Aktar và hiện trong lịch sử của Aktar như mọi tệp khác. aktar --help in ra cùng danh sách này. Với Aktar cho Mac 0.14.0 hoặc Aktar cho Windows 0.7.0 trở lên, lượt tải lên không có -d sẽ theo quy tắc Dùng cho của các đích trước, nên ảnh có thể vào đích dành cho ảnh chụp màn hình còn bản build vào đích khác.
aktar uploadaktar upload --clipboardaktar replaceaktar qraktar loginaktar logoutaktar statusaktar destinationsaktar history
aktar upload
Tải lên một hoặc nhiều tệp và in ra mỗi tệp một liên kết, theo đúng thứ tự, ngay khi từng tệp xong.
Cách dùng
aktar upload <file>... [options]Tùy chọn
| Cờ | Giá trị | Mô tả |
|---|---|---|
-d, --destination | <name|id> | Đích để tải lên, theo tên hoặc ID. Mặc định: đích đang chọn trong Aktar. |
-f, --format | <format> | Nội dung in ra: url (mặc định), markdown, html hoặc custom (mẫu của bạn trong Aktar). |
--name | <name> | Tải lên một tệp với tên này. Phần mở rộng được giữ nếu tên không có. |
--folder | <path> | Giữ tên tệp và tải lên vào thư mục này. |
--expires | <days> | Để bucket xóa tệp sau 1, 7, 14 hoặc 30 ngày. 0 để giữ tệp. |
--qr | In thêm mã QR cho từng liên kết. | |
--json | In một mảng JSON với đầy đủ chi tiết của từng tệp, thay vì liên kết. | |
--port | <port> | Cổng API cục bộ của Aktar, chỉ cho lệnh này. Được ưu tiên hơn AKTAR_PORT và cổng đã lưu. |
Cần biết
- Mọi tệp đều được kiểm tra trước khi tải lên bất cứ thứ gì: nếu một tệp không tồn tại, không tệp nào được tải lên và
aktarthoát với mã 2. - Nếu một lượt tải lên thất bại, các tệp khác vẫn được tải lên. Mỗi lỗi được báo trên stderr, và mã thoát là 1.
- Không có
--folder, mẫu đường dẫn của đích sẽ đặt tên tệp, giống như khi thả tệp lên thanh menu. Có--folder, tệp giữ nguyên tên bên trong thư mục đó. --namechỉ dùng với một tệp mỗi lần. Dấu gạch chéo bị xóa, và phần mở rộng của tệp được thêm vào nếu tên không có:--name covertảiIMG_4021.jpglên thànhcover.jpg. Với--folder, đó là tên bên trong thư mục.--expiresnhận 1, 7, 14 hoặc 30 (ngày), hoặc 0 để giữ tệp. Không có tùy chọn này, tệp được giữ lại, dù Xóa sau trong Aktar được đặt thế nào. Đích cần có quy tắc tự động xóa của Aktar, và không thể kết hợp với--folder.--qrkhông thể kết hợp với--json, và--pngchỉ dùng được vớiaktar qr.- Trong terminal, tiến trình hiển thị trên stderr khi tệp đang tải lên. Tệp được truyền dạng luồng đến Aktar, nên dung lượng không quan trọng, và không có giới hạn thời gian.
Ví dụ
aktar upload screenshot.png
https://files.example.com/2026/10/7f3c2a91.pngaktar upload *.png -f markdown

aktar upload IMG_4021.jpg --name cover --folder blog/2026
https://files.example.com/blog/2026/cover.jpgaktar upload photo.jpg
aktar: photo.jpg: already uploaded, reused the existing link
https://files.example.com/2026/09/4d2a8c61.jpgaktar upload --clipboard
Tải lên tệp hoặc hình ảnh đang có trong bộ nhớ tạm, giống phím tắt bộ nhớ tạm của chính Aktar.
Cách dùng
aktar upload --clipboard [options]Tùy chọn
| Cờ | Giá trị | Mô tả |
|---|---|---|
--clipboard | Tải lên nội dung trong bộ nhớ tạm thay vì tệp. | |
-d, --destination | <name|id> | Đích để tải lên, theo tên hoặc ID. Mặc định: đích đang chọn trong Aktar. |
-f, --format | <format> | Nội dung in ra: url (mặc định), markdown, html hoặc custom (mẫu của bạn trong Aktar). |
--expires | <days> | Để bucket xóa tệp sau 1, 7, 14 hoặc 30 ngày. 0 để giữ tệp. |
--qr | In thêm mã QR cho từng liên kết. | |
--json | In một mảng JSON với đầy đủ chi tiết của từng tệp, thay vì liên kết. | |
--port | <port> | Cổng API cục bộ của Aktar, chỉ cho lệnh này. Được ưu tiên hơn AKTAR_PORT và cổng đã lưu. |
Cần biết
- Truyền tệp hoặc
--clipboard, không truyền cả hai. --namevà--folderchỉ dùng với tệp.-d,-f,--expires,--qrvà--jsonhoạt động như với tệp.- Với
--json, lệnh vẫn in ra một mảng, có một phần tử.
Ví dụ
aktar upload --clipboard
https://files.example.com/2026/10/9a4c03be.pngaktar upload --clipboard -f markdown -d Blog
aktar upload --clipboard --expires 1
https://files.example.com/tmp/1d/2026/10/38f0d7c2.pngaktar replace
Ghi một tệp mới đè lên một tệp đã tải lên, nên khóa và liên kết của nó giữ nguyên. Ai có liên kết cũng sẽ thấy tệp mới.
Cách dùng
aktar replace <upload-id|link|key> <file> [options]Tùy chọn
| Cờ | Giá trị | Mô tả |
|---|---|---|
-d, --destination | <name|id> | Với một khóa: đích có bucket chứa khóa đó, theo tên hoặc ID. Mặc định: đích đang chọn trong Aktar. |
-f, --format | <format> | Nội dung in ra: url (mặc định), markdown, html hoặc custom (mẫu của bạn trong Aktar). |
--qr | In thêm mã QR cho từng liên kết. | |
--json | In một mảng JSON với đầy đủ chi tiết của từng tệp, thay vì liên kết. | |
--port | <port> | Cổng API cục bộ của Aktar, chỉ cho lệnh này. Được ưu tiên hơn AKTAR_PORT và cổng đã lưu. |
Cần biết
- Đối số đầu tiên là ID tải lên hoặc liên kết từ
aktar history(mục lịch sử trong Aktar được cập nhật), nếu không thì là một khóa trong bucket của-d(đích đang chọn trong Aktar khi bỏ trống). Liên kết không có trong lịch sử của Aktar sẽ bị từ chối: hãy truyền khóa của nó kèm-d. - Aktar xóa siêu dữ liệu của tệp và đổi kích thước theo cài đặt của đích, nhưng không bao giờ chuyển sang định dạng khác, nên phần mở rộng của khóa giữ nguyên. Tệp trong
tmp/{N}d/bắt đầu đếm lại N ngày. - Khóa không bao giờ bị đánh số và không có gì khác được tải lên.
--folder,--expires,--namevà--clipboardkhông áp dụng và sẽ bị từ chối. - Bản cũ có thể còn trong bộ nhớ đệm của CDN một lúc. Thời gian bộ nhớ đệm ngắn của đích hoặc tính năng xóa bộ nhớ đệm Cloudflare trong Aktar sẽ xử lý việc đó.
- Cần Aktar cho Mac 0.14.0 hoặc Aktar cho Windows 0.7.0 trở lên.
Ví dụ
aktar replace 0B6C2F8E-3D1A-4C55-9E2B-7A41D0C3E9F1 report-v2.pdf
https://files.example.com/2026/09/0e7d51b3.pdfaktar replace docs/guide.pdf guide.pdf -d Blog -f markdown
[guide.pdf](https://blog-assets.example.com/docs/guide.pdf)aktar qr
Hiển thị mã QR của một liên kết hoặc văn bản bất kỳ trong terminal, để bạn mở trên điện thoại. Khi nhận ID tải lên, lệnh hiển thị liên kết của tệp đó cùng mã QR.
Cách dùng
aktar qr <link|text|upload-id> [--png <file>]Tùy chọn
| Cờ | Giá trị | Mô tả |
|---|---|---|
--png | <file> | Lưu mã QR thành tệp PNG thay vì in ra. |
--port | <port> | Cổng API cục bộ của Aktar, chỉ cho lệnh này. Được ưu tiên hơn AKTAR_PORT và cổng đã lưu. |
Cần biết
- Truyền đúng một đối số, và đặt văn bản có dấu cách trong dấu ngoặc kép.
- ID tải lên là
idtừaktar history --jsonhoặcaktar upload --json.aktartìm nó trong 1.000 lượt tải lên gần nhất trong lịch sử của Aktar; với văn bản thường hoặc liên kết, nó không cần Aktar. - Mã được vẽ màu đen trên nền trắng trong terminal, bất kể giao diện của terminal. Khi đầu ra không phải terminal, hoặc khi
NO_COLORđược đặt, mã được vẽ không màu. --pnglưu mã QR thành tệp PNG thay vì in ra.
Ví dụ
aktar qr https://files.example.com/2026/10/demo.mp4aktar qr 0B6C2F8E-3D1A-4C55-9E2B-7A41D0C3E9F1 --png cover-qr.png
Saved to cover-qr.pngaktar login
Kiểm tra token với Aktar rồi lưu lại, để các lệnh khác có thể kết nối.
Cách dùng
aktar login [--token <token>] [--port <port>]Tùy chọn
| Cờ | Giá trị | Mô tả |
|---|---|---|
--token | <token> | Token, thay cho lời nhắc. |
--port | <port> | Cổng của Aktar, được lưu cùng token. Mặc định 47913. |
Cần biết
- Trong terminal, lệnh hỏi token và ẩn những gì bạn gõ. Khi đầu vào được truyền qua pipe, lệnh đọc token từ đó.
--tokenbỏ qua lời nhắc, nhưng token sẽ nằm trong lịch sử shell của bạn. Truyền qua pipe hoặc dùngAKTAR_TOKENsẽ tránh được điều đó.- Token bị Aktar từ chối sẽ không được lưu, và mã thoát là 3.
Ví dụ
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.jsonpbpaste | aktar login
Connected to Aktar 0.10.0. Saved to /Users/you/.config/aktar/cli.jsonaktar login --token "$AKTAR_SECRET" --port 47920
Connected to Aktar 0.10.0. Saved to /Users/you/.config/aktar/cli.jsonaktar logout
Xóa token và cổng đã lưu.
Cách dùng
aktar logoutTùy chọn
Không có tùy chọn.
Cần biết
AKTAR_TOKEN, nếu được đặt, vẫn hoạt động sauaktar logout.- Lệnh không ngắt kết nối các client khác. Để làm vậy, hãy tạo lại token trong Aktar.
Ví dụ
aktar logout
Logged out.aktar status
aktar: Not connected to Aktar yet. Run aktar login with the token from Aktar's Settings > Integrations.aktar status
Cho biết bạn đang kết nối với Aktar nào, trên cổng nào, đích đang chọn trong Aktar, và tệp cấu hình nằm ở đâu.
Cách dùng
aktar status [--json]Tùy chọn
| Cờ | Giá trị | Mô tả |
|---|---|---|
--json | In JSON thay vì văn bản. | |
--port | <port> | Cổng API cục bộ của Aktar, chỉ cho lệnh này. Được ưu tiên hơn AKTAR_PORT và cổng đã lưu. |
Cần biết
- Cách nhanh để kiểm tra kết nối trong script: lệnh thoát với mã 3 khi không liên lạc được với Aktar hoặc token sai.
Ví dụ
aktar status
Aktar 0.10.0 (build 28) on port 47913
Destination: Screenshots (Cloudflare R2, screenshots)
Config: /Users/you/.config/aktar/cli.jsonaktar status --json
{
"app": "Aktar",
"version": "0.10.0",
"build": "28",
"apiVersion": 1,
"defaultDestinationId": "5D1A9C3E-7B2F-4E61-8A0D-3C9B6F2E1A47",
"outputFormat": "url",
"port": 47913
}aktar destinations
Liệt kê các đích cùng nhà cung cấp, bucket và ID. * đánh dấu đích đang chọn trong Aktar.
Cách dùng
aktar destinations [--json]Tùy chọn
| Cờ | Giá trị | Mô tả |
|---|---|---|
--json | In JSON thay vì văn bản. | |
--port | <port> | Cổng API cục bộ của Aktar, chỉ cho lệnh này. Được ưu tiên hơn AKTAR_PORT và cổng đã lưu. |
Cần biết
- Dùng tên hoặc ID với
-d. Tên được so khớp không phân biệt chữ hoa chữ thường; ID luôn dùng được, kể cả sau khi đổi tên. --jsontrả vềid,name,provider,providerName,bucket,publicBaseURLvàisDefaultcho từng đích.
Ví dụ
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-9D5F2A7E4B13aktar destinations --json | jq -r '.[] | select(.isDefault) | .name'
Screenshotsaktar history
Liệt kê các tệp tải lên gần đây, mới nhất trước: ngày, tên tệp và liên kết. Các từ sau history dùng để tìm trong lịch sử.
Cách dùng
aktar history [search] [options]Tùy chọn
| Cờ | Giá trị | Mô tả |
|---|---|---|
-n, --limit | <n> | Số tệp tải lên cần liệt kê. Mặc định 20. |
-d, --destination | <name|id> | Chỉ các tệp tải lên đích này, theo tên hoặc ID. |
--json | In JSON thay vì văn bản. | |
--port | <port> | Cổng API cục bộ của Aktar, chỉ cho lệnh này. Được ưu tiên hơn AKTAR_PORT và cổng đã lưu. |
Cần biết
- Lệnh liệt kê 20 tệp tải lên, trừ khi bạn truyền
-n. --jsontrả về cùng các trường nhưaktar upload --json, gồm cảidcủa từng tệp để dùng vớiaktar qr.
Ví dụ
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.pdfaktar 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.pdfaktar history -d Builds -n 1 --json | jq -r '.[0].url'
https://acme-builds.s3.amazonaws.com/2026/10/app-3f9c2e1.zipTùy chọn cho mọi lệnh
| Cờ | Giá trị | Mô tả |
|---|---|---|
-h, --help | Hiển thị danh sách lệnh và tùy chọn. | |
-v, --version | Hiển thị phiên bản của aktar. | |
--port | <port> | Cổng API cục bộ của Aktar, chỉ cho lệnh này. Được ưu tiên hơn AKTAR_PORT và cổng đã lưu. |
Đầu ra
Định dạng
-f chọn nội dung in ra cho từng tệp. Không có nó, aktar in URL thuần, bất kể thanh menu của Aktar sao chép theo định dạng nào. Markdown và HTML nhúng hình ảnh và tạo liên kết cho mọi tệp khác, giống cách Aktar làm.
| Định dạng | In ra cho photo.jpg |
|---|---|
-f url | https://files.example.com/2026/10/7f3c2a91.jpgLiên kết (mặc định). |
-f markdown | Hình ảnh Markdown, hoặc liên kết Markdown cho tệp khác. |
-f html | <img src="https://files.example.com/2026/10/7f3c2a91.jpg" alt="">Thẻ <img>, hoặc liên kết <a> cho tệp khác. |
-f custom | Mẫu của bạn trong cài đặt của Aktar, với {url}, {filename} và các biến khác đã được điền. |
stdout và stderr
Đầu ra chuẩn chỉ nhận liên kết, mỗi dòng một liên kết, theo thứ tự các tệp (và mã QR, khi có --qr). Mọi thứ khác đi vào đầu ra lỗi chuẩn: tiến trình, lỗi và ghi chú như aktar: photo.jpg: already uploaded, reused the existing link. Nhờ vậy url=$(aktar upload file) và aktar upload *.png > links.txt luôn nhận được liên kết sạch.
aktar upload photo.jpg
aktar: photo.jpg: already uploaded, reused the existing link
https://files.example.com/2026/09/4d2a8c61.jpgJSON
--json in một mảng, mỗi tệp đã tải lên một phần tử, sau khi tất cả đã xong. Lượt tải lên thất bại bị bỏ ra (chúng được báo trên stderr), nên hãy kiểm tra cả mã thoát.
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": "",
"html": "<img src=\"https://files.example.com/2026/10/7f3c2a91.jpg\" alt=\"\">",
"custom": ""
},
"reused": false
}
]| Trường | Ý nghĩa |
|---|---|
id | ID của tệp trong lịch sử của Aktar. aktar qr nhận giá trị này. |
filename | Tên tệp mà Aktar ghi nhận: tên gốc của tệp, hoặc --name. |
objectKey | Vị trí của tệp trong bucket. |
url | Liên kết. |
destinationId | ID của đích. |
destinationName | Tên của đích. |
mimeType | Loại tệp, sau khi Aktar chuyển đổi (nếu có). |
size | Dung lượng tính bằng byte, như khi lưu. |
createdAt | Thời điểm tải lên (ISO 8601, UTC). |
expiresAt | Thời điểm bucket xóa tệp, hoặc null nếu tệp được giữ. |
replacedAt | Thời điểm tệp được thay thế lần gần nhất (ISO 8601, UTC). Bị bỏ ra cho đến khi tệp được thay thế, và ở các phiên bản Aktar trước Mac 0.14.0 và Windows 0.7.0. |
formats | Liên kết ở cả bốn định dạng: url, markdown, html và custom. |
reused | true khi không có gì được tải lên vì tệp giống hệt đã có sẵn. Bị bỏ ra ở các phiên bản Aktar trước Mac 0.10.0 và Windows 0.3.0. |
Mã thoát
| Mã | Ý nghĩa |
|---|---|
0 | Mọi thứ đều thành công. |
1 | Ít nhất một lượt tải lên hoặc yêu cầu thất bại; các tệp khác vẫn được tải lên. Lỗi của chính Aktar, chẳng hạn chưa thiết lập tự động xóa, cũng kết thúc ở đây. |
2 | Đối số sai, tệp không tồn tại, hoặc tên đích mà Aktar không có. Không có gì được tải lên. |
3 | Chưa đăng nhập, Aktar không chạy, API cục bộ đang tắt, hoặc token sai. |
Công thức
Sao chép, sửa tên tệp, xong. Mọi công thức chỉ dùng những gì đã được mô tả ở trên.
Lưu liên kết vào biến
Chỉ liên kết đi vào đầu ra chuẩn, nên phép thay thế lệnh nhận đúng URL. || exit 1 dừng script nếu tải lên thất bại.
url=$(aktar upload build/report.pdf) || exit 1
echo "Report: $url"
Report: https://files.example.com/2026/10/0e7d51b3.pdfTải lên bản build và đăng liên kết
Nén bản build thành zip, tải lên đích tên Builds với hash rút gọn của commit, rồi đăng liên kết lên bất kỳ webhook nào nhận JSON (kênh chat, hệ thống quản lý issue, endpoint của riêng bạn). set -e dừng lại trước khi đăng nếu tải lên thất bại.
#!/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\"}"Một target trong Makefile
make share tải lên báo cáo với ngày hôm nay và lưu liên kết vào .last-link. Trong Makefile, $$ truyền một ký tự $ cho shell, và dòng lệnh bắt đầu bằng một tab.
share: dist/report.pdf
aktar upload dist/report.pdf --name "report-$$(date +%F)" | tee .last-linkTrình tải ảnh lên cho Typora
Trong Typora, mở Settings > Image, chọn Custom Command làm trình tải ảnh lên và nhập đường dẫn đầy đủ đến aktar (đường dẫn mà which aktar in ra) theo sau là upload. Typora truyền đường dẫn của ảnh và đọc mỗi dòng một liên kết.
/opt/homebrew/bin/aktar uploadTừng bước, kèm cài đặt When Insert…: Tải ảnh Typora lên S3.
Tải lên từ Finder hoặc Phím tắt
Trên Mac, thêm tác vụ Chạy tập lệnh shell vào một phím tắt, hoặc vào một Tác vụ nhanh của Automator nhận tệp trong Finder, và đặt chế độ truyền đầu vào dưới dạng đối số. Phím tắt và Automator không tải PATH của shell, vì vậy mới có dòng đầu tiên. Chọn tệp, chạy, và các liên kết đã nằm trong bộ nhớ tạm.
export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH"
aktar upload "$@" | pbcopy
osascript -e 'display notification "Link copied" with title "aktar"'Nó tải lên tệp, không phải thư mục. Nhiều tệp cho ra nhiều liên kết, mỗi dòng một liên kết.
Tệp tạm thời
Với tệp log, bản ghi màn hình hay bất cứ thứ gì không nên để lâu, hãy để bucket tự xóa. Trước tiên đích cần có quy tắc tự động xóa của Aktar: thiết lập một lần từ Xóa sau trên thanh menu của Aktar hoặc trong cài đặt của đích.
aktar upload crash.log --expires 1
aktar upload screen-recording.mov --expires 7 --qrTệp có hạn được đặt trong tmp/1d/, tmp/7d/, v.v. trong bucket, và bucket xóa chúng ngay cả khi Aktar không chạy.
Mở liên kết trên điện thoại
--qr in mã QR bên dưới liên kết; hãy hướng camera điện thoại vào terminal. Để hiển thị lại sau này, truyền ID tải lên cho aktar qr, ở đây là tệp tải lên mới nhất khớp với “demo”.
aktar upload demo.mp4 --qr
aktar qr "$(aktar history demo -n 1 --json | jq -r '.[0].id')"Windows PowerShell
Cách này cũng dùng được trong PowerShell. $LASTEXITCODE chứa mã thoát, và ConvertFrom-Json đọc --json.
$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.markdownAktar làm gì cho bạn
CLI chỉ chuyển tệp đi; phần còn lại do Aktar làm, theo cài đặt của từng đích. Vì vậy mọi thứ bạn thiết lập trong ứng dụng cũng áp dụng cho aktar upload, không cần thêm tùy chọn nào, và liên kết bạn nhận được là liên kết của tệp như khi được lưu.
-
Mẫu đường dẫn
Đường dẫn đối tượng của đích đặt tên tệp, với
{year},{uuid},{filename}và các biến khác.{md5}và{sha256}đặt tên tệp theo nội dung. -
Xử lý hình ảnh
Nếu đích chuyển ảnh sang WebP hoặc AVIF, nén hoặc đổi kích thước ảnh, các tệp tải lên từ CLI cũng được xử lý như vậy, và liên kết trỏ đến tệp đã chuyển đổi.
-
Siêu dữ liệu ảnh
Siêu dữ liệu hình ảnh trong phần mặc định tải lên của đích xóa vị trí khỏi ảnh, hoặc toàn bộ siêu dữ liệu, trước khi ảnh rời khỏi máy tính của bạn.
-
Cùng tệp, cùng liên kết
Khi bật Dùng lại liên kết cho tệp trùng lặp, nội dung giống hệt trong cùng đích sẽ nhận liên kết có sẵn thay vì tải lên lần thứ hai.
aktarghi chú điều đó trên stderr. -
Tệp lớn
Tệp lớn được tải lên theo từng phần, không có giới hạn 5 GB, được thử lại khi mất kết nối và tiếp tục từ chỗ đã dừng.
aktartruyền tệp dạng luồng đến Aktar, nên không bao giờ nạp cả tệp vào bộ nhớ. -
Liên kết công khai hoặc tạm thời
Liên kết là công khai hay tạm thời (presigned), loại dùng được cả cho bucket riêng tư, là do đích quyết định, giống như trong ứng dụng.
Liên kết cho tệp trùng lặp, xử lý hình ảnh, {md5} và {sha256} cùng tải lên theo phần có từ Aktar cho Mac 0.10.0 và Windows 0.3.0: có gì mới trong 0.10.0.
Khắc phục sự cố
Thông báo lỗi của aktar bắt đầu bằng aktar: và đi vào stderr. Mã thoát cho biết đó là loại sự cố gì.
Aktar isn't running, or its local API is turned off
Mở Aktar và kiểm tra rằng Cho phép kết nối cục bộ đang bật trong Cài đặt > Tích hợp. Nếu bạn đã đổi cổng ở đó, hãy truyền cổng bằng --port hoặc AKTAR_PORT, hoặc chạy lại aktar login --port. Mã thoát 3.
Not connected to Aktar yet
Không có token đã lưu và không có AKTAR_TOKEN. Chạy aktar login với token từ Cài đặt > Tích hợp của Aktar. Mã thoát 3.
The token doesn't match Aktar's anymore
Token đã được tạo lại trong Aktar, hoặc bị gõ sai. Chạy lại aktar login với token hiện tại. Nếu AKTAR_TOKEN được đặt, nó được ưu tiên hơn token đã lưu, nên hãy cập nhật hoặc bỏ đặt biến đó. Mã thoát 3.
Auto-delete isn't set up for this destination
--expires cần quy tắc tự động xóa của bucket. Thiết lập một lần từ Xóa sau trên thanh menu của Aktar hoặc trong cài đặt của đích, hoặc tải lên mà không dùng --expires. Mã thoát 1.
No destination named "…"
Thông báo liệt kê các tên mà Aktar có. Kiểm tra chính tả, đặt tên có dấu cách trong dấu ngoặc kép (-d "Client work"), hoặc dùng ID từ aktar destinations. Mã thoát 2.
Tải lên tệp lớn mất nhiều thời gian
Đó là tốc độ của nhà cung cấp lưu trữ: aktar không giới hạn thời gian tải lên và hiển thị tiến trình trên stderr trong terminal. Hãy để Aktar chạy cho đến khi xong. Nếu mất kết nối hoặc Aktar thoát (Aktar closed the connection before the request finished), hãy tải lại cùng tệp đó: Aktar cho Mac 0.10.0 và Windows 0.3.0 tiếp tục từ phần cuối cùng.
aktar không khởi động: SyntaxError hoặc parseArgs
Node.js của bạn cũ hơn bản 18. Kiểm tra bằng node --version và cập nhật, hoặc cài aktar bằng Homebrew, vốn đi kèm Node.js riêng.
PowerShell báo việc chạy script bị vô hiệu hóa
Chính sách thực thi của PowerShell chặn script mà npm cài cho aktar. Hãy chạy aktar.cmd thay thế, hoặc cho phép script cục bộ một lần bằng Set-ExecutionPolicy -Scope CurrentUser RemoteSigned.