我正在制作P2P媒体共享功能,用户可以与他人共享文件(图像,mp3等)。当用户与另一个共享文件时,我只需向他们发送该文件的链接即可。链接看起来像:
http://www.domain.com/file?q=unique_key
现在,unique_key必须是字母数字且不易猜测,所以我打算使用文件记录的编码密钥。
在我之前的Python GAE应用程序中这很容易,但是在我的新Java应用程序中,我无法获得此Key值,我得到的是一个Long(数字)ID。
My Entity有一个名为ID的字段,它是Long,但在我的GAE管理控制台中有一个实体编码的密钥,它是字母数字,我希望这对我数据库中的每条记录都是唯一的。那么如何访问呢?
我正在使用Objectify,当我创建一个像这样的新密钥时
Key myKey = new Key(FileEntity.class,entityID);
myKey是一个包含一些文本的字符串,但它是我正在寻找的uniqye字母数字ID。
对不起我的模糊问题,请帮助。
答案 0 :(得分:5)
编码的字符串键 很容易猜到 - 它们是包含应用ID,种类名称和ID的编码协议缓冲区。如果您需要不易猜测的值,我建议生成UUID,并将其用作键名(字符串键)。
答案 1 :(得分:1)
由于您使用的是objectify,因此可以使用
方法获取字符串编码的密钥ObjectifyService.factory().keyToString( myKey );