2017-02-17 8 views
0

Я хочу использовать Google Диск в качестве хранилища для своего проекта Django (в частности, мне нужно хранить изображения, сделанные пользователями). То, что я пытаюсь достичь, является следующим:Загрузите файл пользователя на Google диск через веб-приложение django

  • Пользователи загружают свои изображения, используя форму. Эти файлы должны быть каким-то образом перенаправлены через Django, который перенаправляет их на Google Диск с помощью API Google Диска. Причина, по которой я не отправляю файлы непосредственно из браузера пользователя на Google Диск, заключается в том, что я должен хранить на стороне клиента ключ secrey для доступа к API Google Диска (который, конечно же, не должен быть напрямую доступен конечным пользователям).

  • После загрузки я должен быть в состоянии отображать изображения в галерее на моем сайте.

До сих пор я прочитал документацию API Google Drive и, в частности, мне удалось выполнить quickstart с помощью oauth2 для сервера серверных приложений см here (Quickstart охватывает случай, когда файлы загружаются в папку Google Диска пользователя, чтобы промежуточный этап пользовательской аутентификации мне не нужен, вместо этого я использую учетную запись службы для авторизации моих запросов api).

ПОБОЧНЫХ ВОПРОСЫ:

  • Есть ли способ, чтобы получить доступ в просматриваемом образе списка файлов, загруженных пользователями в Google Диск через API или API является единственным интерфейсом для них? Могу ли я получить к ним доступ с помощью пользовательского интерфейса, аналогичного учетной записи Google Диска?

  • Кроме того, я новичок в службах Google и консоли разработчика, кажется мне совершенно беспорядочным ... Я не понял, сколько дискового пространства доступно для меня и как/если это пространство для хранения связано с моим собственный аккаунт Google Диска.

+0

Можете ли вы уточнить, пользуется ли это учетной записью службы или обычной учетной записью?Имейте в виду, что большинство примеров, которые вы найдете, предназначены для использования, когда пользователь хочет сохранить файлы в свою учетную запись. Ваш вариант использования отличается, поэтому вам необходимо соответствующим образом настроить auth. – pinoyyid

+0

Я знаю разницу, я использую учетную запись службы, как указано в ссылке для серверного приложения. – Sirion

+0

Я имел в виду, что вы храните файлы в учетной записи службы и используете учетную запись службы только для доступа прокси к общей папке обычной учетной записи? – pinoyyid

ответ

0

Есть ли способ, чтобы получить доступ в просматриваемом образе списка файлов, загруженный пользователями в Google Диск через API или API является единственным интерфейс для них? Могу ли я получить к ним доступ с помощью пользовательского интерфейса, аналогичного учетной записи Google Диска?

Короткий ответ - нет. Учетные записи служб специально предназначены для доступа только к заявке, в которой они принадлежат. Однако, если это важно, вы можете использовать общий доступ к папкам либо (1), чтобы сделать данные учетной записи службы видимыми в пользовательском интерфейсе обычной учетной записи, либо (2), чтобы позволить вашему приложению записывать в папку обычной учетной записи через общую папку. Помните, что в любом случае файлы будут использовать квоту на учетной записи службы, а не обычную учетную запись.

Другой вариант - не использовать учетную запись службы вообще и делать все с использованием обычной учетной записи.

Я не понял, сколько места на диске доступно для меня и как/если это место для хранения связано с моей учетной записью Google Диска.

Самый простой способ - использовать About.get (https://developers.google.com/drive/v3/reference/about/get), чтобы получить лимит и использованную квоту. Учетная запись службы является независимой учетной записью и не имеет отношения (по крайней мере, с точки зрения хранения и доступа) к обычной учетной записи, которую вы использовали для ее создания.