ngaycdn cdn ngay.net
Đăng nhập

✦ 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

  1. Tải plugin: ngaycdn-wp.zip
  2. WordPress admin → Plugins → Add New → Upload Plugin → chọn file zip → Activate.
  3. 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