Appengine — Сохранение обработанного файла в хранилище данных

#python #google-app-engine #pickle

#python #google-app-engine #маринованный файл

Вопрос:

В Google Appengine меня интересует маринование объекта и сохранение его в хранилище данных. Мне не нужно его индексировать.

Есть ли какая-либо разница, сохраню ли я его как свойство BlobProperty или TextProperty? Какой из них лучше?

Ответ №1:

BlobProperty может хранить двоичные данные, в то время как TextProperty может хранить только строки.

Вы можете использовать BlobProperty, поскольку TextProperty в основном является BlobProperty с кодировкой.

Ответ №2:

NDB теперь предлагает : PickleProperty .

Значение — это объект Python (такой как список, или dict, или строка), который сериализуем с использованием протокола pickle Python; хранилище данных хранит сериализацию pickle в виде большого двоичного объекта. По умолчанию неиндексирован.

Необязательный аргумент ключевого слова: compressed .

Ответ №3:

Неважно. Я только что запустил тесты с обоими. Похоже, что вы не можете использовать TextProperty с pickle. Это приведет к ошибкам. С другой стороны, его использование с BlobProperty работает отлично.