10

ペーストビンへの非公開リンクを投稿した後に取得するように、ランダムな ID を持つリンクを使用して、文書を非公開で共有できるようにしたいと思います。一般的に、CouchDB と Cloudant の両方について知りたいです。

4

1 に答える 1

16

Apache CouchDBでは、読み取り権限はデータベースごとであり、ドキュメントごとではありません。ユーザーがデータベースからドキュメントをフェッチできる場合、ユーザーもフェッチ_all_docs?include_docs=trueできます。

この質問には、CouchDBの読み取り認証に関する詳細を書きました。

いくつかのアプローチがあります:

  1. レイヤー7ファイアウォールまたはリバースHTTPプロキシ。これを正しく行うのは困難です。IMOはほとんどの場合実行可能ではありません。考えられるすべてのクエリがブロックされていることを確認するには、CouchDBのAPIに精通している必要があります(たとえば_rewrite、フィルターを回避する)。

  2. ユーザーごとに1つのデータベース。これはCouchDBのネイティブソリューションです。データベースの作成は非常に安価です。次に、ユーザーが表示できるドキュメントを自分のデータベースに複製します。ユーザーには、CouchのパスワードまたはOAuthアカウントが必要です。

  3. 私は最近、ユーザーごとのデータベースで成功しましたが、URLに一意のキーがあり、すぐにアクセスできるようになっています。それはあなたが望むもののように感じます、しかし内部で私はただランダムなパスワードで使い捨てのアカウントを作成しています。リンクは、などの公開ページに移動しますwww.example.com/pastebin/index.html?doc_id=some_docid&secret=random_secret。次に、ブラウザのJavscriptがwindow.locationそのパスワードを読み取り、AJAXクエリに挿入します(Authorizationヘッダー内)。Couchは許可を与え、ユーザーは満足しています。残念ながら、これには少し試行錯誤が必要でした。ただし、ほとんどの場合、単純なWebプログラミングです。

于 2011-02-15T04:33:17.107 に答える