Skip to content

media.danghong.me Content ​

1. Loại tư liệu ​

NhómNội dungTrạng tháiNơi lưu
Hồ sơẢnh đại diện, hồ sơ, hành trình, niềm tin, học vấn, sở thích, phimCóD1 profile, about; R2 photos/
ẢnhAlbum: gia đình, cộng đồng, cột mốc, sở thích, sản phẩm, tổ chứcCóR2 photos/…, D1 albums
Câu chuyệnBài viết, câu chuyện có trang riêng hoặc link bài gốcCóD1 stories
Con ngườiGia đình và người truyền cảm hứngCóD1 people
LinkKênh và đường dẫn ra ngoài theo nhómCóD1 links
VideoVideo tự host hoặc link YouTubeCóD1 videos, R2 videos/
Tài liệuPDF và file không phải ảnh/video, gồm 9 tập sách Learning DesignCóR2 documents/, website/books/
Tài sản của danghong.meẢnh, screenshot sản phẩm, PDF sáchCóR2 website/
Bio chuẩnBio ngắn / vừa / dài, tiếng Việt và tiếng AnhMục tiêuDự kiến D1 profile
Bộ báo chíẢnh chân dung chính thức, logo, CV/PDFMục tiêuDự kiến R2 press/
Truyền thôngBài báo, phỏng vấn, talk, slideMục tiêuDự kiến D1 links (nhóm riêng) và R2 documents/
Chứng nhận và giải thưởngMục tiêuChưa quyết
Sản phẩm số ngoài siteBài Substack, Gemini Gems, AI WebsitesCó trên danghong.meD1 products; link Substack ở Identity

2. Dữ liệu trong D1 và R2 ​

BảngNội dung
documentsMỗi dòng là một object JSON: profile, about, website (của danghong.me)
itemsDanh sách có thứ tự (collection, id, position, data JSON). collection của media là albums, stories, people, links, videos; của danghong.me xem Data. people và links có trường group; site gom nhóm theo thứ tự xuất hiện.
filesThông tin của mỗi object trong R2: path, type, content_type, size, title, alt, description, tags

Cấu trúc thư mục trong R2:

text
photos/                 # ảnh của media: family/<người>/, communities/, milestones/, hobbies/, products/, organizations/
documents/  videos/     # tài liệu, video tự host
website/                # tài sản của danghong.me: images/, screenshots/, books/ (PDF bộ sách L&D)

Ảnh trong thư mục folder của một album (kể cả thư mục con) tự xuất hiện trong album. Đường dẫn ảnh trong dữ liệu (avatar, cover, photo, image, photos) là key R2, ví dụ photos/family/me/me-01.jpg; URL https://… được giữ nguyên. Tham chiếu tới file hoặc album không tồn tại sẽ bị bỏ qua và ghi cảnh báo vào log của Function, thay vì làm hỏng trang.

3. Dùng lại ở site khác (JSON API) ​

Mọi file và JSON đều cho phép CORS (Access-Control-Allow-Origin: *), nên bất kỳ subdomain nào cũng dùng được. danghong.me dùng ảnh, screenshot và PDF sách trực tiếp từ https://media.danghong.me/website/….

EndpointNội dung
/api/index.jsonTất cả dữ liệu bên dưới
/api/profile.jsonHồ sơ (avatar là URL tuyệt đối)
/api/about.jsonHành trình, niềm tin, triết lý, học vấn, khóa học, sở thích
/api/people.jsonGia đình & người truyền cảm hứng
/api/stories.jsonCâu chuyện (page là URL trang nếu có nội dung)
/api/albums.jsonAlbum: id, title, cover, count, photos[] (url, title, alt)
/api/links.jsonCác nhóm link (image là URL tuyệt đối)
/api/photos.jsonChỉ các file ảnh
/api/videos.jsonDanh sách video
/api/files.jsonMọi file: path, url, type, folder, size, title, alt, tags, albums
/api/website/<collection>.jsonNội dung danghong.me nguyên dạng (products, courses, books, masters, mentors, family, communities, tools, updates); settings.json là document website

Ví dụ trong một trang bất kỳ:

js
const res = await fetch("https://media.danghong.me/api/profile.json");
const profile = await res.json();
// profile.avatar === "https://media.danghong.me/photos/avatar.png"

Hoặc nhúng ảnh trực tiếp: <img src="https://media.danghong.me/photos/avatar.png">.

Trang HTML và JSON được cache 60 giây; file R2 được cache 1 ngày, hỗ trợ ETag và range request (xem PDF/video theo đoạn).

Việc còn mở ​

#Việc
MC1Tạo các nhóm "Mục tiêu" ở bảng mục 1 (bio chuẩn, bộ báo chí, truyền thông, chứng nhận).