С Диска в Blobstore с помощью Picker

У меня настроен сборщик Google, а также Blobstore. Я могу загружать файлы с моего локального компьютера в Blobstore, но теперь у меня настроен сборщик, он работает, но я не знаю, как использовать информацию (url? fileid?), чтобы затем загрузить выбранный файл в Blobstore? Любые советы о том, как это сделать? Я не смог найти ничего об этом на ресурсах Google.


person Marcelo Acevedo    schedule 20.03.2014    source источник


Ответы (3)


Прямой связи между Google Picker и Blobstore App Engine нет. Это разные инструменты для разных работ. Google Picker разработан как инструмент конечного пользователя для выбора данных из учетной записи пользователя Google. Так уж получилось, что Picker также предоставляет интерфейс загрузки (на Google Диск). С другой стороны, хранилище BLOB-объектов разработано как механизм хранения BLOB-объектов для вашего приложения App Engine.

Теоретически вы можете написать скрипт для их соединения, но есть несколько соображений:

  • Вашему приложению потребуется доступ к учетной записи Google Диска пользователя с использованием OAuth2. Это необходимо, так как API Picker — это API на стороне клиента, а API Blobstore — на стороне сервера. Вам нужно будет отправить URL-адрес выбранного документа на сервер, затем загрузить документ и, наконец, сохранить его в Blobstore.
  • Если вы затем не удалите данные с Диска (очень рискованно из-за пункта 3), ваши данные будут сохраняться в 2 местах.
  • Вы не можете знать наверняка, выбрал ли пользователь существующий файл или загрузил новый
  • Плохой пользовательский опыт — вещи пользователей, которые они загружают на Диск

В сущности, это звучит как плохая идея! Каков ваш вариант использования?

person Gwyn Howell    schedule 20.03.2014

@Gwyn - у меня недостаточно репутации, чтобы добавить комментарий к вашему решению, но у меня была идея по поводу проблемы № 3: вы не можете точно знать, выбрал ли пользователь существующий файл или загрузил новый.

Можно ли использовать Response.VIEW, чтобы узнать, какое представление они использовали, когда файл был выбран? Если у вас есть один конструктор представления для файлов диска и один для загрузки файлов, что-то вроде

var driveView = new google.picker.View(google.picker.ViewId.DOCS);
var uploadView = new google.picker.DocsUploadView();

позволит ли это вам узнать, был ли файл новой загрузкой (безопасно удалить) или существующим файлом (оставьте его в покое)?

person MSCF    schedule 15.04.2014

Предположим, вы хотите выбрать файл со своего Google Диска и переместить его в Blobstore.

1) Сначала вы должны выполнить Oauth для Google Drive API.

2)Используя средство выбора при выборе файла с диска, вам нужно получить его id

3)Используя id, полученный на шаге 2, вы можете программно загрузить его с помощью Drive API.

4) После загрузки файла вы можете использовать FileService (хотя он и устарел), чтобы загрузить файл в Blobstore
.

person Raghvendra Kumar    schedule 19.11.2014