Приложният програмен интерфейс (API) на файлове имаше необявен престой (ApiTemporaryUnavailableError) вчера, който продължи няколко часа.
Сега обмисляме да заменим (сега отхвърления) API за файлове с cloudstorage (GCS), но все пак да продължим да използваме API на blobstore за други операции (като качване или изтегляне на файлове). Също така бихме запазили съществуващи файлове, написани с API за файлове в blobstore.
Основният проблем изглежда е, че нашето приложение използва BlobInfo (за определяне на типове mime, имена на файлове, списък на петна) по-късно. Но в документацията се казва, че файловете, написани на GCS и вмъкнати чрез blobstore.create_gs_key в blobstore, нямат BlobInfo.
Какви са възможните решения?
- Напишете арбитър за съхранение (който използва BlobInfo или GCS метаданни)
- Съхранявайте собствена таблица с данни BlobInfo в допълнение към таблицата на Google
- Преобразувайте цялата кодова база от blobstore в GCS (и мигрирайте съществуващи blob в GCS)
- Забравете за AppEngine и стартирайте нашето самостоятелно приложение (вижте по-долу) на Compute Engine или EC2
- ???
Забележка: Ние също имаме самостоятелна версия на нашето приложение (която работи локално), която използва частна реализация на частите от API на AppEngine (ние не използваме сървър за разработка), който се използва от нашето приложение. Така че всяко парче код се нуждае и от локална реализация.