Хорошо, я нашел корень проблемы,
Мои файлы были пусты.
Использование mongoengine python GridFsProxy read () дает мне 0, но я все еще могу видеть их в коллекции mongoterm, db.fs.files, размер которой отличается от 0: /
Я посмотрел, куда я добавлял файлы в своем тестовом коде, и вот что я нашел:
f1 = open(path.join(PROJECT_ROOT,'test_files/marmot.jpg'), 'r')
f2 = open(path.join(PROJECT_ROOT,'test_files/img-sanctuaire.png'), 'r')
files = [f1, f2]
# add logs
for i in range(0, num):
log = Foo.create(
...
files=files,
)
# appends
batch_insert_logs.append(log.to_mongo())
db = _get_db()
# Batch insert logs
if batch_insert_logs:
db.mycollection.insert(batch_insert_logs)
Первые изображения журнала были действительны, но все остальные были пустыми, что привело к ошибке, упомянутой ранее.
Изменение позиции экземпляра файла на:
# add logs
for i in range(0, num):
f1 = open(path.join(PROJECT_ROOT,'test_files/marmot.jpg'), 'r')
f2 = open(path.join(PROJECT_ROOT,'test_files/img-sanctuaire.png'), 'r')
files = [f1, f2]
log = Foo.create(
...
files=files,
)
# appends
batch_insert_logs.append(log.to_mongo())
db = _get_db()
# Batch insert logs
if batch_insert_logs:
db.mycollection.insert(batch_insert_logs)
Решил проблему полностью.
Вывод таков: где-то есть проблема, вероятно, в mongoengine.
Я постараюсь подробно (-vvv) на монго, чтобы точно определить проблему.