BlueskyでホスティングされたWebサイト
(danielmangum.com)BlueskyとATプロトコル
-
BlueskyとATプロトコルの紹介
- Blueskyは、個人データサーバー(PDS)を通じてWebサイトをホスティングできる機能を提供している。
- ATプロトコルは、Webサイトのコンテンツアップロードに使用されるAPIを定義しており、PDSがこれを実装する。
- Blueskyは、
bsky.socialドメインを通じてPDSにアクセスできるエントリーポイントを提供している。
-
コンテンツの種類: レコードとブロブ
- ほとんどのソーシャルアプリケーションは、レコードとブロブという2つの主要なコンテンツタイプを持つ。
- レコードは、ユーザーが生成する中核的なエンティティであり、構造とメタデータを持つ。
- ブロブは主にメディアアセットのような大きな非構造化データで、レコードを通じて参照される。
-
ブロブのアップロードと管理
- ブロブは、レコードが参照する前にPDSへアップロードされていなければならない。
- アップロードされたブロブは一時ストレージに保存され、参照されるまではアクセスできない。
- サーバーはレコード作成時に参照されたブロブを確認し、成功するとブロブを公開アクセス可能にする。
-
データ作成と認証
- PDSでデータ作成操作を行うには、認証用のアクセストークンが必要である。
com.atproto.server.createSessionXRPCメソッドを使用して、ユーザー資格情報をトークンと交換できる。
-
ブロブ参照とレコード作成
- ブロブは
app.bsky.feed.postレコードで参照でき、画像として含めることができる。 - MIMEタイプの検証を通じて、ブロブ参照の有効性を確認する。
- ブロブは
-
セキュリティ上の考慮事項
- Webサーバーでユーザーアップロードファイルを提供することは、セキュリティ上の問題を引き起こす可能性がある。
- コンテンツセキュリティポリシー(CSP)によって、
getBlobエンドポイントのセキュリティを強化する必要がある。
-
CDNを通じた画像配信
- Blueskyアプリケーションの画像ブロブは、PDSインスタンスではなくCDNを通じて配信される。
- アプリケーションは、CDNを通じて画像を配信する方法を把握している必要がある。
-
オープンソースの利点
- BlueskyのPDS実装はオープンソースで提供されており、ブロブ参照がどのように定義されているかを確認できる。
- 新しいLexiconをサポートするために、PDSは未知のLexiconも処理できなければならない。
-
Lexiconの拡張可能性
app.bsky.feed.post型は有効な埋め込みに対するユニオンを含み、デフォルトでオープンになっている。- 新しい種類の埋め込みを追加でき、これにより既存のユースケースを拡張する「マイクロ拡張」が可能になる。
まだコメントはありません。