Tóm tắt nhanh / Lệnh

Bộ Marketing

/ak:storage

Object storage tương thích S3

Trợ lý object storage tương thích S3 cho asset marketing trên Cloudflare R2, AWS S3, MinIO, Backblaze B2 và DigitalOcean Spaces.

01

Xác định thao tác

02

Kiểm tra config

03

Kiểm tra SDK

04

Chọn provider

Nguyên tắc 01

Asset marketing có thể dùng mọi backend tương thích S3 nếu endpoint, bucket, key và region được cấu hình.

Nguyên tắc 02

Skill trả URL public dễ chia sẻ khi có S3_PUBLIC_URL hoặc URL từ provider.

Nguyên tắc 03

Fallback là hành vi có chủ đích: storage chưa cấu hình không được làm hỏng workflow asset local.

Nguyên tắc 04

Credential không bao giờ được hiển thị; dùng access token giới hạn quyền theo bucket.

Bản đồ thực thi

Các nhánh chính từ đầu vào đến kết quả, bám theo cách command chạy khi dùng thật.

01

Khởi động

Đầu vào, phạm vi, route

  1. 1 Xác định thao tác Xác định người dùng cần upload, download, list, lấy public URL, delete, sync hay fallback local-only.
  2. 2 Kiểm tra config Kiểm tra S3_ENDPOINT, S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, S3_BUCKET, region tùy chọn và public URL.
02

Xử lý

Agent / skill thực thi

  1. 3 Kiểm tra SDK Xác nhận @aws-sdk/client-s3 đã cài; nếu chưa thì trả lỗi fallback đúng chuẩn.
  2. 4 Chọn provider Map endpoint sang Cloudflare R2, AWS S3, MinIO, Backblaze B2, DigitalOcean Spaces hoặc storage tương thích.
03

Kiểm chứng

Gate, review, xác thực

  1. 5 Chạy client Dùng s3-client.cjs cho thao tác upload, download, list, getPublicUrl hoặc remove.
  2. 6 Trả URL hoặc path Trả CDN public URL nếu có cấu hình, provider URL nếu có, hoặc chỉ path local trong fallback.
04

Đóng

Báo cáo, bàn giao, artifact

  1. 7 Xử lý lỗi Khi chưa cấu hình, mọi thao tác trả lỗi nhẹ nhàng và không throw exception.

Cú pháp, đối số, subcommand

Cách gọi skill: cú pháp, đối số vị trí, option dùng chung, rồi từng subcommand với cú pháp và kết quả riêng.

Cú pháp

/ak:storage [upload|download|list|sync] [file|path] [--bucket <name>]

Đối số

[file|path]

File hoặc path

File local, object key remote hoặc path thư mục cho thao tác đã chọn. Bắt buộc với upload, download và sync; prefix tùy chọn với list.

/ak:storage upload assets/images/launch-hero.png

Option dùng chung

--bucket <name>

Tên bucket

Override S3_BUCKET đã cấu hình cho thao tác này. Credential vẫn lấy từ .env của user và không bao giờ được log.

/ak:storage list designs/ --bucket campaign-assets

Subcommand

upload Upload
/ak:storage upload [file|path] [--bucket <name>]

Upload một asset marketing local đã duyệt. Kiểm tra va chạm đích trước khi ghi đè.

[file|path]
File local cần upload.
--bucket <name>
Override S3_BUCKET cho lượt upload này.

Kết quả: Kết quả PutObject kèm URL dựng được hoặc fallback nhẹ khi chưa cấu hình; URL không chứng minh quyền truy cập public.

/ak:storage upload assets/images/launch-hero.png
download Download
/ak:storage download [file|path] [--bucket <name>]

Download đúng một object remote đã duyệt ra path local, tạo thư mục cha khi cần.

[file|path]
Object key và path đích cho download.
--bucket <name>
Override S3_BUCKET cho lượt download này.

Kết quả: File local được ghi từ byte object, hoặc lỗi thiếu key/config mà không throw.

/ak:storage download designs/pricing-deck.html
list List
/ak:storage list [file|path] [--bucket <name>]

Liệt kê remote key dưới prefix tùy chọn. Không upload, download hay xóa object.

[file|path]
Prefix tùy chọn để giới hạn danh sách.
--bucket <name>
Override S3_BUCKET cho lượt list này.

Kết quả: Danh sách object giới hạn theo prefix, hoặc fallback nhẹ khi thiếu credential hay SDK.

/ak:storage list designs/
sync Sync
/ak:storage sync [file|path] [--bucket <name>]

Sync đúng các file local được yêu cầu sang remote key. Không hàm ý xóa remote hay đổi quyền public.

[file|path]
Thư mục local cần sync.
--bucket <name>
Override S3_BUCKET cho lượt sync này.

Kết quả: Object được yêu cầu được map và upload chỉ sau khi kiểm tra va chạm; thiếu credential thì giữ asset local và báo là chưa upload.

/ak:storage sync assets/slides/

Mode / route nên dùng

upload

Upload một asset local đã duyệt.

Nghiên cứu:
Config + path
Review:
Secret exposure
Xác thực:
Upload result
download

Download một object remote đã duyệt.

Nghiên cứu:
Object key
Review:
Wrong key
Xác thực:
Local file
list

Liệt kê remote key có giới hạn.

Nghiên cứu:
Prefix
Review:
Overbroad list
Xác thực:
Object list
sync

Sync đúng file local được yêu cầu.

Nghiên cứu:
Folder mapping
Review:
Unexpected writes
Xác thực:
Requested objects

Prompt mẫu

Ví dụ gọi command theo từng flag, subcommand, mode hoặc route dùng được trong workflow thực tế.

Kiểm tra mặc định Khuyến nghị
/ak:storage
Dùng khi:
Cần chốt thao tác được phép, bucket và việc đã có credential chưa trước khi đụng object.
Kết quả:
Chốt cấu hình và sự hiện diện của SDK, báo fallback chỉ local khi chưa cấu hình, và không bịa slash flag ngoài upload, download, list, sync và --bucket.
Upload asset
/ak:storage upload assets/images/launch-hero.png
Dùng khi:
Một asset marketing đã tạo cần được host remote sau khi duyệt.
Kết quả:
Đọc file local, kiểm tra va chạm đích, gửi PutObject khi đã duyệt, rồi trả URL dựng được hoặc fallback nhẹ khi chưa cấu hình, không throw.
Download object
/ak:storage download designs/pricing-deck.html
Dùng khi:
Một object remote đã duyệt cần được ghi ra path local.
Kết quả:
Tạo thư mục cha, ghi byte object ra path local đã nêu, và báo thiếu key hoặc config mà không crash.
List prefix
/ak:storage list designs/
Dùng khi:
Cần remote asset key dưới một prefix mà không upload hay xóa gì.
Kết quả:
Liệt kê tập object giới hạn theo prefix, hoặc trạng thái fallback khi thiếu credential hay SDK, không đổi quyền public.
Sync thư mục
/ak:storage sync assets/slides/
Dùng khi:
Một thư mục asset local cần được mirror đúng các object được yêu cầu.
Kết quả:
Map file local được yêu cầu sang remote key, kiểm tra va chạm, không xóa object remote, và giữ asset local nếu thiếu credential.
List kèm bucket
/ak:storage list designs/ --bucket campaign-assets
Dùng khi:
Lượt list phải nhắm một bucket đã nêu thay vì S3_BUCKET mặc định.
Kết quả:
Override bucket cho đúng lượt list đó, vẫn nạp credential từ .env của user mà không log, rồi trả listing prefix có giới hạn hoặc lỗi config nhẹ.

Phạm vi xử lý

  • Storage tương thích S3
  • Cloudflare R2
  • AWS S3
  • MinIO
  • Backblaze B2
  • DigitalOcean Spaces
  • URL asset
  • Fallback nhẹ nhàng

Tiếp theo