Situs web yang dihosting di Bluesky
(danielmangum.com)Bluesky dan protokol AT
-
Pengenalan Bluesky dan protokol AT
- Bluesky menyediakan kemampuan untuk menghosting situs web melalui Personal Data Server (PDS).
- Protokol AT mendefinisikan API yang digunakan untuk mengunggah konten situs web, dan PDS mengimplementasikannya.
- Bluesky menyediakan titik masuk untuk mengakses PDS melalui domain
bsky.social.
-
Jenis konten: record dan blob
- Sebagian besar aplikasi sosial memiliki dua jenis konten utama, yaitu record dan blob.
- Record adalah entitas inti yang dibuat pengguna, dengan struktur dan metadata.
- Blob umumnya berupa data besar yang tidak terstruktur seperti aset media, dan direferensikan melalui record.
-
Unggah dan pengelolaan blob
- Blob harus diunggah ke PDS sebelum direferensikan oleh record.
- Blob yang diunggah disimpan di penyimpanan sementara dan tidak dapat diakses sampai direferensikan.
- Server memverifikasi blob yang direferensikan saat record dibuat, lalu jika berhasil, blob menjadi dapat diakses publik.
-
Pembuatan data dan autentikasi
- Untuk melakukan operasi pembuatan data di PDS, diperlukan access token untuk autentikasi.
- Metode XRPC
com.atproto.server.createSessiondapat digunakan untuk menukar kredensial pengguna menjadi token.
-
Referensi blob dan pembuatan record
- Blob dapat direferensikan dalam record
app.bsky.feed.postdan disertakan sebagai gambar. - Validitas referensi blob diperiksa melalui validasi tipe MIME.
- Blob dapat direferensikan dalam record
-
Pertimbangan keamanan
- Menyajikan file unggahan pengguna dari web server dapat menimbulkan masalah keamanan.
- Keamanan untuk endpoint
getBlobperlu diperkuat melalui Content Security Policy (CSP).
-
Penyajian gambar melalui CDN
- Blob gambar di aplikasi Bluesky disajikan melalui CDN, bukan melalui instance PDS.
- Aplikasi perlu mengetahui cara menyajikan gambar melalui CDN.
-
Keunggulan open source
- Implementasi PDS milik Bluesky tersedia sebagai open source, sehingga kita dapat memeriksa bagaimana referensi blob didefinisikan.
- Untuk mendukung lexicon baru, PDS harus dapat menangani lexicon yang belum dikenalnya.
-
Ekstensibilitas lexicon
- Tipe
app.bsky.feed.postmencakup union untuk embed yang valid, dan secara default bersifat terbuka. - Tipe embed baru dapat ditambahkan, sehingga memungkinkan "ekstensi mikro" yang memperluas use case yang sudah ada.
- Tipe
Belum ada komentar.