2015-12-30 3 views
1

App Engine documentation для Blobstore дает довольно подробное объяснение того, как загрузить файл, используя BlobstoreUploadHandler, предоставленный инфраструктурой webapp.Сохранение файла в App Engine Blobstore

Однако у меня есть экземпляр cgi.FieldStorage, который я хотел бы хранить непосредственно в Blobstore. Другими словами, мне не нужно загружать файл, так как это позаботится другими средствами; Мне просто нужно его хранить.

Я просматривал модуль blobstoresource, чтобы попытаться понять, как обработчик загрузки создает/генерирует ключи blobstore и в конечном итоге записывает файлы в сам blobstore, но я теряюсь. Кажется, что CreateUploadURLResponse в blobstore_service_pb - это место, где будет происходить фактическая запись, но я не вижу компонент, который фактически реализует эту функциональность.

Update

Существует также реализация для хранения файлов непосредственно в файловую систему, которую я считаю, что обработчик загрузки делает в конце. Я не совсем уверен в этом, поэтому объяснение относительно того, следует ли использовать FileBlobStorage, является правильным способом.

ответ

0

После deprecation API файлов вы больше не можете писать напрямую в blobstore. Вместо этого вы должны написать в Google Cloud Storage. Для этого вы можете использовать AE GCS client Файлы, написанные в Google Cloud Storage, могут быть отправлены API Blobstore на creating a blob key.

+0

Что-то пишет в blobstore, когда мы используем 'BlobstoreUploadHandler', правда? Если это так, не можем ли мы использовать один и тот же процесс для хранения самого блоба? Я не говорю, что я не буду переключаться на GCS, но меня интересует, что я мог бы сделать, если бы мне пришлось придерживаться blobstore – nmagerko

+0

. Я бы порекомендовал вам забыть о blobstore и использовать только GCS, если у вас нет много кода, который используется на blobstore. –

+0

@DmitrySadovnychyi не слишком много кода зависит от blobstore. GCS это – nmagerko

Смежные вопросы