Наилучшая практика создания ключей для раздачи медиафайлов (фотографии, mp3, документы и т. Д.) - PullRequest
0 голосов
/ 18 июля 2010

Я делаю P2P Media функцию обмена, где пользователи могут делиться файлами (изображения, mp3 и т. Д.) С другими. Когда пользователь делится файлом с другим, я просто отправляю ему ссылку на этот файл. Ссылки выглядят так:

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

Теперь ключ unique_key должен быть буквенно-цифровым и не легко угадываемым, поэтому я планирую использовать кодированный ключ записи файла.

Это было легко в моем предыдущем приложении Python GAE, но в моем новом приложении Java я не могу получить это значение ключа, все, что я получаю, это идентификатор, который является длинным (числовым).

У моего объекта есть поле с именем ID, которое имеет значение Long, но в моей консоли администратора GAE есть ключ с кодировкой объекта, который является буквенно-цифровым, и я надеюсь, что он уникален для каждой записи в моей базе данных. Так как получить к этому доступ?

Я использую Objectify, и когда я создаю новый ключ, подобный этому

Ключ myKey = новый ключ (FileEntity.class, entityID);

myKey - это строка с некоторым текстом, но это альфа-числовой идентификатор uniqye, который я ищу.

Извините за мой нечеткий вопрос, пожалуйста, помогите.

Ответы [ 2 ]

5 голосов
/ 19 июля 2010

Кодированные строковые ключи являются легко угадываемыми - они представляют собой закодированные буферы протокола, содержащие идентификатор приложения, имя вида и идентификатор.Если вам нужны значения, которые трудно угадать, я бы рекомендовал генерировать UUID и использовать их вместо имен ключей (строковых ключей).

1 голос
/ 18 июля 2010

Поскольку вы используете objectify, вы можете получить ключ в виде строки, используя метод

ObjectifyService.factory().keyToString( myKey );
...