gpt4 book ai didi

python - 使用 mongoengine 将文件保存到 MongoDB GridFS 时遇到问题

转载 作者:太空宇宙 更新时间:2023-11-03 18:40:53 25 4
gpt4 key购买 nike

编辑:在 Windows 7 上使用 python 2.7

我在使用 mongoengine 将数据保存在 FileField 中时遇到问题。保存前后的文件大小有很大不同。运行这个:

from mongoengine import *
class Test(Document):

File = FileField()

#connect to my mongodb
connect( 'myDB', host= '192.168.0.3' )

Test.drop_collection()

# write to mongodb GridFS, per the mongoengine documentation: https://mongoengine-odm.readthedocs.org/en/latest/guide/gridfs.html
test = Test()
test.File.put( open( r'c:\temp\owl.jpg', 'r') )
test.save()

#get the Test instance from the db, print out the number of bytes according to mongoengine
test = Test.objects().first()
print test.File.length

#just to make sure we aren't crazy, check the filesize on disk:
print os.path.getsize( r'c:\temp\owl.jpg' )

生成此输出:

864
145047

如有任何指点,我们将不胜感激!

最佳答案

更改:

test.File.put( open( r'c:\temp\owl.jpg', 'r') )

至:

test.File.put( open( r'c:\temp\owl.jpg', 'rb') )

解决了问题。遗憾的是操作系统之间的行为不一致。

关于python - 使用 mongoengine 将文件保存到 MongoDB GridFS 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20532111/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com