2015-11-12 2 views
0

J'accède à GridFS en utilisant Python, et j'aimerais avoir accès à un fichier et à ses métadonnées.Récupérer des métadonnées de fichiers en utilisant python GridFS

La version de Python est 2.7, la version de MongoDB est 3.0.7. OS est Ubuntu 14.04.

Le fichier est stocké comme suit:

>>> fs = GridFS(db, "gridfstest") 
>>> fs.put(
      "HELLO WORLD", 
      test_metadata ="testing", 
      other_metadata="other" 
      ) 

Et récupéré comme suit:

>>> retrieved_file = fs.find_one() 
>>> retrieved_file.read() 
b'HELLO WORLD' 
>>> print(retrieved_file.metadata) 
None 

Je me attendais .metadata être un dictionnaire de métadonnées. retrieved_file._file stocke les métadonnées que je cherchais, ainsi que des métadonnées supplémentaires, mais je suppose que l'accès à tout ce qui commence par un trait de soulignement est un hack au mieux. Alors, comment puis-je obtenir le fichier et les métadonnées que j'ai définies à l'origine?

Répondre

1

Vous les métadonnées vivent dans le files Collection qui signifie dans "gridfstest.files" afin de récupérer vos métadonnées dont vous avez besoin pour interroger cette collection.

In [54]: col = db.gridfstest.files.findOne() 

In [55]: col.find_one() 
Out[55]: 
{'_id': ObjectId('5644e9220acf451b36f22438'), 
'chunkSize': 261120, 
'encoding': 'utf8', 
'length': 11, 
'md5': '361fadf1c712e812d198c4cab5712a79', 
'other_metadata': 'other', 
'test_metadata': 'testing', 
'uploadDate': datetime.datetime(2015, 11, 12, 19, 31, 46, 175000)}