0

ユーザーがファイル(画像、mp3など)を他のユーザーと共有できるP2Pメディア共有機能を作成しています。ユーザーが他のユーザーとファイルを共有するとき、私は単にそのファイルへのリンクをユーザーに送信します。リンクは次のようになります。

http://www.domain.com/file?q=unique_key

ここで、unique_keyは英数字である必要があり、簡単に推測できないため、ファイルレコードのエンコードされたキーを使用する予定です。

これは以前のPythonGAEアプリでは簡単でしたが、新しいJavaアプリでは、このキー値を取得できません。取得するのはLong(数値)のIDだけです。

私のエンティティには長いIDというフィールドがありますが、GAE管理コンソールには英数字のエンティティエンコードキーがあり、データベース内のすべてのレコードで一意であることを願っています。では、それにアクセスする方法は?

Objectifyを使用していて、このような新しいキーを作成するとき

キーmyKey=新しいキー(FileEntity.class、entityID);

myKeyはテキストを含む文字列ですが、私が探している一意の英数字のIDです。

あいまいな質問でごめんなさい、助けてください。

4

2 に答える 2

5

エンコードされた文字列キー簡単に推測できます。アプリ ID、種類名、ID を含むエンコードされたプロトコル バッファーです。簡単に推測できない値が必要な場合は、代わりに UUID を生成し、それらをキー名 (文字列キー) として使用することをお勧めします。

于 2010-07-19T10:50:52.950 に答える
1

オブジェクト化を使用しているため、メソッドを使用して文字列でエンコードされたキーを取得できます

ObjectifyService.factory().keyToString( myKey );
于 2010-07-18T14:36:20.533 に答える