0

Je fais une fonctionnalité de partage de médias P2P où les utilisateurs peuvent partager des fichiers (images, mp3 etc) avec d'autres. Lorsqu'un utilisateur partage un fichier avec l'autre, je lui envoie simplement le lien vers ce fichier. Les liens ressemble:Meilleure pratique pour générer des clés pour un élément de médias de service (Photos, mp3, docs etc)

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

Maintenant, le UNIQUE_KEY doit être alphanumérique et pas facilement devinable, donc je l'intention d'utiliser la clé encodée du fichier enregistrement. Cela a été facile dans ma précédente application Python GAE, mais dans ma nouvelle application Java, je ne parviens pas à obtenir cette valeur de clé, tout ce que je reçois est un ID qui est long (numérique). Mon Entité a un champ appelé ID qui est Long, mais dans ma console d'administration GAE il y a une clé codée d'entité qui est alphanumérique, et j'espère qu'elle est unique pour chaque enregistrement dans ma base de données. Alors, comment accéder à cela?

J'utilise Objectify et quand je crée une nouvelle clé comme celui-ci

Key myKey = nouvelle clé (FileEntity.class, entityID); MyKey est une chaîne avec du texte, mais c'est l'identifiant numérique uniqye que je cherche.

Désolé pour ma question, aidez s'il vous plaît.

Répondre

1

Puisque vous utilisez objectiver, vous pouvez obtenir la chaîne clé codée en utilisant la méthode

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

Merci Ashwin, ton code a fonctionné parfaitement pour moi dans mon contexte. – charming30

5

clés de chaîne encodée sont facilement guessible - ils sont des tampons de protocole codés contenant l'ID d'application, le nom genre et ID. Si vous avez besoin de valeurs difficiles à deviner, je vous recommande de générer des UUID et de les utiliser comme noms de clés (clés de chaîne).

+0

Merci, cette entrée a sûrement aidé. – charming30