Загрузите файл пользователя на диск Google через веб-приложение Django.
Я хочу использовать Google Drive в качестве хранилища для своего проекта Django (в частности, мне нужно хранить изображения, сделанные пользователями). Я пытаюсь достичь следующего:
Пользователи загружают свои изображения, используя форму. Эти файлы должны быть каким-то образом направлены через Django, который перенаправляет их на Google Drive с помощью Google Drive API. Причина, по которой я не отправляю файлы непосредственно из браузера пользователя на Google Drive, заключается в том, что я должен хранить на стороне клиента секретный ключ для доступа к Google Drive API (который, конечно же, не должен быть напрямую доступен конечным пользователям).
После загрузки я должен иметь возможность отображать изображения в галерее на моем сайте.
До сих пор я читал документацию по Google Drive API и, в частности, мне удалось выполнить быстрый запуск, используя OAuth2 для серверных приложений, см. Здесь (быстрый запуск охватывает случай, когда файлы загружаются в папку Google Drive пользователя, поэтому это промежуточный этап аутентификации пользователя, который мне не нужен, вместо этого я использую служебную учетную запись для авторизации моих запросов API).
ПОБОЧНЫЕ ВОПРОСЫ:
Есть ли способ получить доступ к доступному для просмотра списку файлов, загруженных пользователями в Google Drive через API, или API является единственным интерфейсом к ним? Могу ли я получить к ним доступ с помощью пользовательского интерфейса, похожего на мой аккаунт Google Диска?
Кроме того, я новичок в службах Google, и консоль разработчика кажется мне довольно беспорядочной... Я не понял, сколько дискового пространства мне доступно и как / если это пространство связано с моей учетной записью Google Drive.
1 ответ
Есть ли способ получить доступ к доступному для просмотра списку файлов, загруженных пользователями в Google Drive через API, или API является единственным интерфейсом к ним? Могу ли я получить к ним доступ с помощью пользовательского интерфейса, похожего на мой аккаунт Google Диска?
Краткий ответ: нет. Сервисные учетные записи специально предназначены для доступа только к приложению, которому они "принадлежат". Однако, если это важно, вы можете использовать общий доступ к папкам, чтобы (1) сделать данные учетной записи службы видимыми в пользовательском интерфейсе обычной учетной записи, или (2) разрешить вашему приложению записывать в папку обычной учетной записи через общую папку. Помните, что в любом случае файлы будут использовать квоту для учетной записи службы, а не для обычной учетной записи.
Другой вариант - вообще не использовать служебную учетную запись, а делать все, используя обычную учетную запись.
Я не понял, сколько дискового пространства доступно для меня и как / если это место связано с моей учетной записью Google Drive.
Самый простой подход - использовать About.get ( https://developers.google.com/drive/v3/reference/about/get), чтобы получить лимит и используемую квоту. Сервисная учетная запись является независимой учетной записью и не имеет отношения (по крайней мере, с точки зрения хранения и доступа) к обычной учетной записи, которую вы использовали для ее создания.