Позволяет ли Google App Engine кэширование файлов (при использовании Django)?
Я столкнулся с проблемой, что файловое кэширование Django не работает в Google App Engine. В идеале я хочу использовать команды, такие как ниже, для чтения/записи из ведра Google Cloud Storage Bucket.
output = cache.get(cacheKey)
#or
cache.set(cacheKey, output, timeout = 60*15)
Я видел несколько статей о мемкэшировании, но это не то, что мне нужно.
Возможно ли объединить файловое кэширование Django с Google Cloud Storage? Как это сделать (и какие параметры разрешения необходимы?)
Обновление: запись/чтение из облачного хранилища google немного сложна, и Django не может этого сделать, потому что это требует взаимодействия с API.
Я был близок к тому, чтобы воспроизвести кэширование Djangos, просто используя pickling и эту библиотеку gcsfs, вот так:
import gcsfs
fs = gcsfs.GCSFileSystem(project='my-project')
pickle.dump(output,fs.open('my-project.appspot.com/myfile.p', 'wb'))
Забавный факт, pandas также оснащена возможностью записи непосредственно в GCS
from google.cloud import storage
output.to_csv('gs://my-project.appspot.com/filename.csv')
Хотя оба эти метода работают, любой из них чрезвычайно медленный для записи. Для моего объекта потребовалось 45-65 секунд на запись и 5-7 секунд на чтение (по сравнению с локальным пикированием, которое в обоих случаях составляет менее 1 секунды).
Жаль, что Google App Engine не позволяет писать в свою локальную файловую систему. Возможно, мне придется использовать что-то другое, например Compute Engine (надеюсь, он это позволяет)