Trang web được lưu trữ trên Bluesky
(danielmangum.com)Bluesky và giao thức AT
-
Giới thiệu về Bluesky và giao thức AT
- Bluesky cung cấp khả năng lưu trữ trang web thông qua máy chủ dữ liệu cá nhân (PDS).
- Giao thức AT định nghĩa API dùng để tải nội dung trang web lên, và PDS triển khai API đó.
- Bluesky cung cấp một điểm truy cập để vào PDS thông qua tên miền
bsky.social.
-
Các loại nội dung: record và blob
- Hầu hết các ứng dụng mạng xã hội có hai loại nội dung chính là record và blob.
- Record là thực thể cốt lõi do người dùng tạo ra, có cấu trúc và siêu dữ liệu.
- Blob chủ yếu là dữ liệu lớn, phi cấu trúc như tài sản media, và được tham chiếu thông qua record.
-
Tải lên và quản lý blob
- Blob phải được tải lên PDS trước khi được record tham chiếu.
- Blob đã tải lên được lưu trong kho tạm thời và không thể truy cập cho đến khi được tham chiếu.
- Khi tạo record, máy chủ sẽ kiểm tra các blob được tham chiếu và nếu thành công sẽ cho phép truy cập công khai vào blob.
-
Tạo dữ liệu và xác thực
- Để thực hiện thao tác tạo dữ liệu trên PDS, cần có access token để xác thực.
- Có thể dùng phương thức XRPC
com.atproto.server.createSessionđể đổi thông tin xác thực của người dùng lấy token.
-
Tham chiếu blob và tạo record
- Blob có thể được tham chiếu trong record
app.bsky.feed.postvà được đưa vào dưới dạng hình ảnh. - Tính hợp lệ của tham chiếu blob được kiểm tra thông qua xác thực MIME type.
- Blob có thể được tham chiếu trong record
-
Các cân nhắc về bảo mật
- Việc phục vụ các tệp do người dùng tải lên từ máy chủ web có thể gây ra vấn đề bảo mật.
- Cần tăng cường bảo mật cho endpoint
getBlobthông qua chính sách bảo mật nội dung (CSP).
-
Phân phối hình ảnh qua CDN
- Các blob hình ảnh của ứng dụng Bluesky được phân phối qua CDN thay vì trực tiếp từ instance PDS.
- Ứng dụng cần biết cách phân phối hình ảnh thông qua CDN.
-
Ưu điểm của mã nguồn mở
- Phần triển khai PDS của Bluesky được cung cấp dưới dạng mã nguồn mở, nên có thể kiểm tra cách tham chiếu blob được định nghĩa.
- Để hỗ trợ các lexicon mới, PDS phải có khả năng xử lý cả những lexicon mà nó chưa biết.
-
Khả năng mở rộng của lexicon
- Kiểu
app.bsky.feed.postbao gồm một union cho các embed hợp lệ và mặc định là mở. - Có thể thêm các kiểu embed mới, cho phép tạo ra các "mở rộng vi mô" để mở rộng các trường hợp sử dụng hiện có.
- Kiểu
Chưa có bình luận nào.