Java 为媒体项目(照片、mp3、文档等)生成密钥的最佳实践
我正在制作一个P2P媒体共享功能,用户可以与他人共享文件(图像、mp3等)。当一个用户与另一个用户共享一个文件时,我只需向他们发送指向该文件的链接。这些链接看起来像: 现在,unique_键必须是字母数字的,并且不容易猜测,所以我计划使用文件记录的编码键 这在我早期的Python GAE应用程序中很容易,但在我的新Java应用程序中,我无法获得这个键值,我得到的只是一个长的ID(数字) 我的实体有一个名为ID的长字段,但在我的GAE管理控制台中有一个实体编码的字母数字键,我希望这对于数据库中的每个记录都是唯一的。那么,如何访问它呢 我正在使用Objectify,当我创建一个像这样的新键时 Key myKey=新密钥(FileEntity.class,entityID) myKey是一个包含一些文本的字符串,但它是我正在寻找的uniqye字母数字idJava 为媒体项目(照片、mp3、文档等)生成密钥的最佳实践,java,google-app-engine,google-cloud-datastore,objectify,Java,Google App Engine,Google Cloud Datastore,Objectify,我正在制作一个P2P媒体共享功能,用户可以与他人共享文件(图像、mp3等)。当一个用户与另一个用户共享一个文件时,我只需向他们发送指向该文件的链接。这些链接看起来像: 现在,unique_键必须是字母数字的,并且不容易猜测,所以我计划使用文件记录的编码键 这在我早期的Python GAE应用程序中很容易,但在我的新Java应用程序中,我无法获得这个键值,我得到的只是一个长的ID(数字) 我的实体有一个名为ID的长字段,但在我的GAE管理控制台中有一个实体编码的字母数字键,我希望这对于数据库中的
很抱歉,我的模糊问题,请提供帮助。因为您使用的是objectify,所以可以使用该方法获取字符串编码的密钥
ObjectifyService.factory().keyToString( myKey );
由于您使用的是objectify,因此可以通过使用
ObjectifyService.factory().keyToString( myKey );
编码的字符串密钥很容易猜测-它们是包含应用程序ID、种类名称和ID的编码协议缓冲区。如果您需要不容易猜测的值,我建议生成UUID,并将其用作密钥名称(字符串密钥),相反。编码的字符串键很容易猜测-它们是包含应用ID、种类名称和ID的编码协议缓冲区。如果您需要不容易猜测的值,我建议生成UUID,并将其用作键名(字符串键)。谢谢,此输入肯定会有所帮助。谢谢,这个输入肯定有帮助。谢谢Ashwin,你的代码在我的上下文中非常适合我。谢谢Ashwin,你的代码在我的上下文中非常适合我。