✦ Tài liệu
Tích hợp ngaycdn
Mọi ảnh phục vụ theo đường dẫn cdn.ngay.net/<tenant>/<slug>.<ext>,
trong đó tenant là slug tài khoản của bạn.
Đã có tài khoản? Đăng nhập để xem tài liệu
điền sẵn key + tenant tại /app/docs.
1. Lấy API key
Chưa có tài khoản? Liên hệ nhận tư vấn —
admin sẽ tạo tenant và gửi email mời đặt mật khẩu. Sau khi đăng nhập, vào
API Keys trong portal /app để tạo key (scope
wp cho plugin WordPress, mcp cho AI agent/script).
2. WordPress plugin
- Tải plugin: ngaycdn-wp.zip
- WordPress admin → Plugins → Add New → Upload Plugin → chọn file zip → Activate.
- Settings → Ngaycdn CDN → điền API key + tenant slug bên dưới, bấm Test connection.
API endpoint : https://cdn.ngay.net
API key : cdn_wp_<prefix>_<secret> (scope "wp")
Tenant slug : <your-tenant-slug>
Từ đây mọi ảnh upload qua Media Library tự động đẩy lên CDN; URL cũ tự rewrite sang
cdn.ngay.net/<tenant>/....
3. Astro / JavaScript
Chưa cần cài package — copy hàm dựng URL này vào project của bạn:
// src/lib/cdn-url.ts — copy into your Astro / EmDash project
const CDN = 'https://cdn.ngay.net'
const TENANT = '<your-tenant-slug>'
type Preset = 'thumb' | 'cover' | 'og' | 'full'
type Options = { preset?: Preset; w?: number; h?: number; format?: 'auto' | 'webp' | 'avif'; q?: number }
export function cdnUrl(imageSlug: string, ext = 'jpg', opts: Options = {}): string {
if (opts.preset) return `${CDN}/${TENANT}/${opts.preset}/${imageSlug}.${ext}`
const params = new URLSearchParams()
if (opts.w) params.set('w', String(opts.w))
if (opts.h) params.set('h', String(opts.h))
if (opts.format) params.set('format', opts.format)
if (opts.q) params.set('q', String(opts.q))
const qs = params.toString()
return `${CDN}/${TENANT}/${imageSlug}.${ext}${qs ? `?${qs}` : ''}`
}
// --- usage in any .astro page ---
// import { cdnUrl } from '../lib/cdn-url'
// <img src={cdnUrl('hero', 'jpg', { w: 800, format: 'auto' })} alt="Hero" loading="lazy" />
// <img src={cdnUrl('hero', 'jpg', { preset: 'cover' })} alt="Hero" />
Dự án trong cùng monorepo có thể dùng thẳng
@ngaycdn/cdn-astro (package nội bộ, chưa publish npm) — xem
README trong packages/cdn-astro.
4. REST API
Upload ảnh bằng multipart form, xác thực Bearer token:
curl -X POST https://cdn.ngay.net/api/upload \
-H "Authorization: Bearer cdn_wp_<prefix>_<secret>" \
-F "file=@./photo.jpg" \
-F "altText=Sunset over Hanoi"
# → { "ok": true, "data": { "slug": "photo", "ext": "jpg", "url": "https://cdn.ngay.net/<tenant>/photo.jpg", … } } Lấy URL hiển thị:
<img src="https://cdn.ngay.net/<your-tenant-slug>/hero.jpg" alt="Hero" loading="lazy" />
<!-- resize on the fly -->
<img src="https://cdn.ngay.net/<your-tenant-slug>/hero.jpg?w=400&format=auto" alt="Hero" loading="lazy" />
<!-- named presets: thumb · cover · og · full -->
<img src="https://cdn.ngay.net/<your-tenant-slug>/cover/hero.jpg" alt="Hero" /> 5. MCP cho AI agent
Claude Desktop / Claude Code / bất kỳ MCP client nào — cấu hình server:
{
"mcpServers": {
"ngaycdn": {
"url": "https://cdn.ngay.net/mcp",
"headers": {
"Authorization": "Bearer cdn_mcp_<prefix>_<secret>"
}
}
}
} Hướng dẫn chi tiết (5 tool, ví dụ prompt, bulk upload): cdn.ngay.net/agent · bản Markdown máy đọc: /agent-guide.md