【问题标题】:Best Practice for generating Keys for a serving Media items (Photos, mp3, docs etc)为服务媒体项目(照片、mp3、文档等)生成密钥的最佳实践
【发布时间】:2010-07-18 07:54:21
【问题描述】:

我正在制作 P2P 媒体共享功能,用户可以在其中与他人共享文件(图像、mp3 等)。当用户与其他用户共享文件时,我只需向他们发送指向该文件的链接。链接如下:

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

现在,unique_key 必须是字母数字且不容易猜到,所以我打算使用文件记录的编码密钥。

这在我早期的 Python GAE 应用程序中很容易,但在我的新 Java 应用程序中,我无法获取这个 Key 值,我得到的只是一个 Long(数字)的 ID。

我的实体有一个名为 ID 的长字段,但在我的 GAE 管理控制台中有一个实体编码键,它是字母数字,我希望我的数据库中的每条记录都是唯一的。那么如何访问呢?

我正在使用 Objectify,当我创建这样的新密钥时

Key myKey = new Key (FileEntity.class, entityID);

myKey 是一个包含一些文本的字符串,但它是我正在寻找的唯一字母数字 ID。

对不起,我的问题很模糊,请帮忙。

【问题讨论】:

    标签: java google-app-engine google-cloud-datastore objectify


    【解决方案1】:

    编码字符串键很容易猜到 - 它们是包含应用 ID、种类名称和 ID 的编码协议缓冲区。如果您需要不容易猜到的值,我建议您生成 UUID,并将其用作键名(字符串键)。

    【讨论】:

    • 谢谢,这个意见肯定有帮助。
    【解决方案2】:

    由于使用的是objectify,所以可以使用方法获取字符串编码的key

    ObjectifyService.factory().keyToString( myKey );
    

    【讨论】:

    • 感谢 Ashwin,您的代码在我的上下文中非常适合我。
    猜你喜欢
    • 2023-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-30
    • 2011-09-23
    • 2014-04-27
    • 2022-11-03
    • 1970-01-01
    相关资源
    最近更新 更多