File size: 4,677 Bytes
e1b5e25
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
#!/usr/bin/env python3
import sys
sys.path.append('/root/enise-site')

import pymongo
from datetime import datetime

print("🗄️  EXPLORATEUR DE BASE DE DONNÉES MONGODB")
print("=============================================")

try:
    # Connexion à MongoDB
    client = pymongo.MongoClient(
        host='localhost',
        port=27017,
        username='tiffank1802',
        password='SzPLNg4zfgz3jKuF',
        authSource='admin'
    )
    
    db = client['enise_filesystem']
    
    print("✅ Connexion réussie à la base de données")
    print(f"📁 Base de données : enise_filesystem")
    print()
    
    # Lister les collections
    print("📋 Collections disponibles :")
    collections = db.list_collection_names()
    for i, collection in enumerate(collections, 1):
        print(f"   {i}. {collection}")
    print()
    
    # Contenu de file_metadata
    print("📁 Métadonnées des fichiers (file_metadata) :")
    try:
        files = list(db.file_metadata.find().limit(10))
        if files:
            print(f"   📊 Total fichiers : {db.file_metadata.count_documents({})}")
            print("   📄 10 derniers fichiers :")
            for i, file in enumerate(files, 1):
                filename = file.get('original_filename', file.get('filename', 'N/A'))
                size = file.get('file_size', 0)
                owner = file.get('owner_id', 'N/A')
                created = file.get('created_at', 'N/A')
                file_id = file.get('id', 'N/A')
                print(f"      {i}. {filename}")
                print(f"         ID: {file_id}")
                print(f"         Taille: {size} bytes")
                print(f"         Propriétaire: {owner}")
                print(f"         Créé: {created}")
                print()
        else:
            print("   Aucun fichier trouvé")
    except Exception as e:
        print(f"   Erreur: {e}")
    print()
    
    # Contenu de fs.files (GridFS)
    print("📄 Fichiers GridFS (fs.files) :")
    try:
        gridfs_files = list(db.fs.files.find().limit(5))
        if gridfs_files:
            print(f"   📊 Total fichiers GridFS : {db.fs.files.count_documents({})}")
            print("   📄 5 premiers fichiers :")
            for i, file in enumerate(gridfs_files, 1):
                filename = file.get('filename', 'N/A')
                length = file.get('length', 0)
                upload_date = file.get('uploadDate', 'N/A')
                print(f"      {i}. {filename}")
                print(f"         Taille: {length} bytes")
                print(f"         Upload: {upload_date}")
                print()
        else:
            print("   Aucun fichier GridFS trouvé")
    except Exception as e:
        print(f"   Erreur: {e}")
    print()
    
    # Logs d'accès
    print("📋 Logs d'accès (file_access_logs) :")
    try:
        logs = list(db.file_access_logs.find().sort('timestamp', -1).limit(5))
        if logs:
            print(f"   📊 Total logs : {db.file_access_logs.count_documents({})}")
            print("   📄 5 dernières activités :")
            for i, log in enumerate(logs, 1):
                file_id = log.get('file_id', 'N/A')
                user_id = log.get('user_id', 'N/A')
                access_type = log.get('access_type', 'N/A')
                timestamp = log.get('timestamp', 'N/A')
                success = log.get('success', True)
                status = "✅" if success else "❌"
                print(f"      {i}. [{status}] {access_type.upper()}")
                print(f"         Fichier: {file_id}")
                print(f"         Utilisateur: {user_id}")
                print(f"         Date: {timestamp}")
                print()
        else:
            print("   Aucun log trouvé")
    except Exception as e:
        print(f"   Erreur: {e}")
    print()
    
    # Statistiques de la base
    print("📊 Statistiques de la base de données :")
    try:
        stats = db.command('dbStats')
        print(f"   📦 Taille totale (bytes): {stats.get('dataSize', 0):,}")
        print(f"   📦 Taille totale (MB): {stats.get('dataSize', 0) / 1024 / 1024:.2f}")
        print(f"   📚 Collections: {len(collections)}")
        print(f"   📄 Index: {len(stats.get('indexes', []))}")
    except Exception as e:
        print(f"   Erreur: {e}")
    
    client.close()
    print()
    print("🎯 Pour accéder manuellement :")
    print("   mongo --username tiffank1802 --password SzPLNg4zfgz3jKuF localhost:27017/enise_filesystem")
    print()
    
except Exception as e:
    print(f"❌ Erreur de connexion : {e}")
    print("Vérifiez que MongoDB est bien démarré")