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