Search API から検索結果を受け取ると、多数のファイル ID が返されます。これらの結果を元のドキュメントへのリンクとしてユーザーに表示したいと思います。これらの ID を正規のプライベートURLに変換する方法はありますか? この目的には、v1 または v2 API のどちらでも問題ありません。
ありがとう。
編集: プライベート URL とは、ドキュメントの所有者がアクセスできる URL を意味していました。
Search API から検索結果を受け取ると、多数のファイル ID が返されます。これらの結果を元のドキュメントへのリンクとしてユーザーに表示したいと思います。これらの ID を正規のプライベートURLに変換する方法はありますか? この目的には、v1 または v2 API のどちらでも問題ありません。
ありがとう。
編集: プライベート URL とは、ドキュメントの所有者がアクセスできる URL を意味していました。
V2 http://developers.box.com/docs/#files-create-a-shared-link-for-a-fileを使用し、"access":"Collaborators" を使用できます。共同作業者がいないプライベート フォルダで、共同作業者のリストに他のユーザーを追加していない場合、その「共有リンク」を使用できるのは所有者だけです。引用が追加されたのは、実際には誰とも共有していないため、共有という言葉がかなり皮肉になるためです。
次のような curl 呼び出しを行うことで、他の誰かをコラボレーションに追加して、その共有リンクの使用を許可された人々のクラブに追加できます。
curl https://api.box.com/2.0/collaborations \
-H "Authorization: BoxAuth api_key=API_KEY&auth_token=AUTH_TOKEN" \
-d '{"item": { "id": "FOLDER_ID", "type": "folder"}, {"accessible_by": { "id": "USER_ID"}, "role": "editor"}' \
-X POST
これは、 http://developers.box.com/docs/#collaborations-add-a-collaborationの V2 API にも記載されています。
微妙な点は、コラボレーターはフォルダー レベルで追加されますが、共有リンクはファイル レベルで作成されることです。ファイルの共有リンクへの所有者のアクセスのみを許可する新しい共有リンク レベル「所有者」を私たちに求めることができると思います。それは現時点では存在しません。
ここでの別のアプローチは、ダウンロードをプロキシするようにアプリケーションをセットアップすることです。アプリケーションでBox の「ファイルのダウンロード」API 呼び出しを使用する呼び出しを作成し、その呼び出しからの応答を Web サーバー経由でユーザーにストリーミングします。多くの場合、これはセットアップが簡単ではなく、さまざまな落とし穴が関係しています (たとえば、ダウンロード呼び出しが失敗した場合に何が起こるか)。
使用している言語、フレームワーク、および Web サーバーによっては、これを達成するのが困難または容易になる場合があります。場合によっては、かなり簡単です。