Member 11930819 Ответов: 2

Google drive web не совпадает с Google drive API


Я реализовал инструмент Google Drive API и пытаюсь перечислить все файлы, которые хранятся на Google Диске. Но я могу видеть только те файлы, которые я загрузил с помощью своего инструмента API. Когда я загружаю файл с помощью Google Drive Web, я вижу его только в веб-интерфейсе, но не в своем инструменте API. Я думал, что с помощью инструмента API у меня есть полный доступ к моему личному Google Диску. Почему я не могу просмотреть все файлы?

Что я уже пробовал:

Когда я загружаю файл с помощью Google Drive Web, я вижу его только в веб-интерфейсе, но не в своем инструменте API.
public static Dictionary<string,string> GetFiles(bool gelöschteanzeigen)
        {
            Dictionary<string, string> listdateien = new Dictionary<string, string>();

            string pageToken = null;
            do
            {
                var request = service.Files.List();

                if (gelöschteanzeigen)
                    request.Q = "trashed = true and '" + RootId + "'" + " in parents";
                else
                    request.Q = "trashed = false and '" + RootId + "'" + " in parents";

                request.Spaces = "drive";
               request.Fields = "nextPageToken, files(id, name)";
                request.PageToken = pageToken;
                var result = request.Execute();
                foreach (var file in result.Files)
                {
                    listdateien.Add(file.Id, file.Name);
                }
                pageToken = result.NextPageToken;
            } while (pageToken != null);
            
            
            return listdateien;
        }

Richard MacCutchan

Спросите Google, это их API.

2 Ответов

Рейтинг:
2

Linda Lawton

Мне кажется,что вы используете аутентификацию учетной записи службы.

Помните, что учетная запись службы-это не то, что вы думаете о ней как о фиктивном пользователе. Когда вы загружаете данные с помощью учетной записи службы, вы загружаете их в учетную запись google drive, принадлежащую этой учетной записи службы. Когда вы запускаете файл.список в качестве учетной записи службы вы увидите файлы, загруженные в учетную запись службы Google drive.

Вы не увидите файлы, загруженные в учетную запись службы google drive в вашей собственной веб-версии Google drive, если у вас нет учетной записи службы, которая делится этими файлами с вами.

Линда


Member 11930819

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

Итак, как я могу поделиться сервисными файлами и "веб-файлами", которые я не работаю только в "сервисном поле"?

Linda Lawton

Учетная запись службы не может перечислить файлы, к которым у нее нет доступа, чтобы вы предоставили ей доступ к файлам в вашей учетной записи погружения, которые она не перечисляет?

Примечание: общий доступ к папке с учетной записью службы не всегда предоставляет ей разрешения на просмотр всех новых файлов, добавленных в указанную папку.

Рейтинг:
1

Graeme_Grant

Я проделал большую работу с API Google Drive и не испытал того, о чем вы говорите. Их файловая / папочная система работает немного иначе, чем у большинства. Убедитесь, что вы смотрите в правильном расположении папки.

Может быть, эта документация поможет: поиск файлов  |  Drive REST API  |  Разработчики Google[^]


Member 11930819

Эй, спасибо за ваш ответ, но я уже нашел ссылку и не смог решить ее самостоятельно.

Здесь я хочу показать вам свой метод получения файлов из папки по идентификатору:

[код перешел в вопрос]

Я получаю только список с файлами, которые я загрузил с помощью API.

Graeme_Grant

Ваш код не проверяет наличие дополнительных данных, поэтому вы можете видеть только первую страницу результатов. Возможно, именно поэтому. Документация гласит:

Multiple corpora and Team Drives may be searched in a single query, though incomplete results may be returned if the combined corpus is too large. If the incompleteSearch field in the result is true, not all documents have been searched.

Пример по ссылке, приведенной выше, показывает вам, как получить "все" данные.

Вот ссылка на пример на этой странице: поиск файлов  |  Drive REST API  |  Разработчики Google[^]

Member 11930819

Хм, я обновил свой код, теперь он выглядит очень похожим на ваше предложение. Но я получаю тот же список, что и раньше.

Graeme_Grant

Я провел тест несколько минут назад:
1. добавьте новый файл, удалите файл, переименуйте папку, используя: Веб-интерфейс Google Drive[^]
2. Использовать API для чтения папок и файлов и все выглядело просто, как ожидалось.

Проблема может быть в вашем запросе.

Member 11930819

странно, я не могу найти здесь ошибки... может быть, я могу показать вам это по скайпу?

Graeme_Grant

Нет скайпу.

Member 11930819

ладно, может быть, по-другому? Или вы можете прислать мне часть вашего кода?

Graeme_Grant

Моя - это частная библиотека связи для коммерческого приложения, написанного в соответствии со спецификацией Google. Так что нет,на данном этапе я не в состоянии разделить его. Вы увидите, что результаты не будут отличаться.

Я предлагаю упростить ваш запрос и вытащить все файлы, а затем посмотреть на данные и соответствующим образом уточнить запрос.

Обновление: вот несколько ссылок для вас, чтобы получить поддержку от Google и других пользователей Google Drive API:
* Как получить помощь  |  Drive REST API  |  Разработчики Google[^]
* Справочный Форум Google Drive[^]

Member 11930819

хорошо, НП, но все равно не могу найти ошибку в запросе. Даже с этим запросом я не получаю файлы, которые я загрузил с помощью веб-интерфейса:

запрос.Q = " trashed = false";

Я пытаюсь найти решение с вами по последним ссылкам. Спасибо вам до сих пор!