Bluesky และ AT Protocol

  • แนะนำ Bluesky และ AT Protocol

    • Bluesky มีความสามารถในการโฮสต์เว็บไซต์ผ่าน Personal Data Server (PDS)
    • AT Protocol กำหนด API ที่ใช้สำหรับอัปโหลดเนื้อหาเว็บไซต์ และ PDS เป็นผู้ทำการติดตั้งใช้งาน
    • Bluesky มีจุดทางเข้าสำหรับเข้าถึง PDS ผ่านโดเมน bsky.social
  • ประเภทของเนื้อหา: เรคอร์ดและบล็อบ

    • แอปพลิเคชันโซเชียลส่วนใหญ่มีเนื้อหาหลักอยู่สองประเภทคือ เรคอร์ดและบล็อบ
    • เรคอร์ดคือเอนทิตีหลักที่ผู้ใช้สร้างขึ้น โดยมีโครงสร้างและเมทาดาทา
    • บล็อบคือข้อมูลขนาดใหญ่ที่ไม่มีโครงสร้างเป็นหลัก เช่น ไฟล์สื่อ และจะถูกอ้างอิงผ่านเรคอร์ด
  • การอัปโหลดและจัดการบล็อบ

    • ต้องอัปโหลดบล็อบไปยัง PDS ก่อนที่เรคอร์ดจะอ้างอิงถึงมันได้
    • บล็อบที่อัปโหลดแล้วจะถูกเก็บไว้ในพื้นที่จัดเก็บชั่วคราว และจะยังไม่สามารถเข้าถึงได้จนกว่าจะถูกอ้างอิง
    • เมื่อสร้างเรคอร์ด เซิร์ฟเวอร์จะตรวจสอบบล็อบที่ถูกอ้างอิง และหากสำเร็จก็จะเปิดให้เข้าถึงบล็อบนั้นได้แบบสาธารณะ
  • การสร้างข้อมูลและการยืนยันตัวตน

    • การดำเนินการสร้างข้อมูลบน PDS ต้องใช้ access token สำหรับการยืนยันตัวตน
    • สามารถใช้เมธอด XRPC com.atproto.server.createSession เพื่อแลกข้อมูลรับรองของผู้ใช้เป็นโทเค็นได้
  • การอ้างอิงบล็อบและการสร้างเรคอร์ด

    • บล็อบสามารถถูกอ้างอิงในเรคอร์ด app.bsky.feed.post และใส่เป็นรูปภาพได้
    • มีการตรวจสอบ MIME type เพื่อยืนยันความถูกต้องของการอ้างอิงบล็อบ
  • ข้อพิจารณาด้านความปลอดภัย

    • การให้บริการไฟล์ที่ผู้ใช้อัปโหลดจากเว็บเซิร์ฟเวอร์อาจก่อให้เกิดปัญหาด้านความปลอดภัย
    • ควรเสริมความปลอดภัยให้กับเอนด์พอยต์ getBlob ด้วย Content Security Policy (CSP)
  • การให้บริการรูปภาพผ่าน CDN

    • image blob ของแอปพลิเคชัน Bluesky ถูกให้บริการผ่าน CDN ไม่ใช่จากอินสแตนซ์ PDS
    • แอปพลิเคชันต้องรู้วิธีให้บริการรูปภาพผ่าน CDN
  • ข้อดีของโอเพนซอร์ส

    • การติดตั้งใช้งาน PDS ของ Bluesky เปิดเป็นโอเพนซอร์ส ทำให้สามารถตรวจสอบได้ว่าการอ้างอิงบล็อบถูกกำหนดไว้อย่างไร
    • เพื่อรองรับ lexicon ใหม่ ๆ PDS ต้องสามารถจัดการ lexicon ที่ตนไม่รู้จักได้ด้วย
  • ความสามารถในการขยายของ lexicon

    • ประเภท app.bsky.feed.post มี union สำหรับ embed ที่ใช้ได้ และเปิดไว้โดยปริยาย
    • สามารถเพิ่ม embed ประเภทใหม่ได้ ซึ่งทำให้เกิด “micro-extension” ที่ช่วยขยายกรณีการใช้งานเดิม

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น