分散ファイルストレージシステムの小さなファイルのアップロード/ダウンロード(python 3.8+MongoDB 4.2.3)


参照先:
  • Python 3 File(ファイル)メソッド
  • MongoDB and PyMongo Tutorial

  • 分散ファイルストレージ環境:Python 3.8,PyMongo 3.10.1,MongoDB 4.2.3
    ファイルのアップロード方法:
    #!/usr/bin/python3
     
    from pymongo import MongoClient
    
    # connecting to database. db:testfile, collection:hello 
    myclient = MongoClient('mongodb://localhost:40009/')
    db = myclient.testfile
    collection = db.hello
    
    # open a file to upload
    myfile = open(file='D:/workspace/language.pdf',mode='rb')
    data = myfile.read()
    
    doc = [{
         "userid":"5",
            "filename":"language",
            "filettype":"pdf",
            "content":data,
            "size":"3000"
        }]
    
    # insert document
    result = collection.insert_many(doc)
    print(result)
    
    myfile.close()
    
    

    ファイルのダウンロード方法:
    #!/usr/bin/python3
     
    from pymongo import MongoClient
    
    # connecting to database. db:testfile, collection:hello  
    myclient = MongoClient('mongodb://localhost:40009/')
    db = myclient.testfile
    collection = db.hello
    
    # find a file to download with "content" value. Stored in test.pdf 
    mydoc = collection.find_one({
         "userid":"5"},{
         "_id":0,"content":1})
    myfile = open(file='D:/workspace/test.pdf',mode='ab')
    data = myfile.write(mydoc["content"])
    
    myfile.close()