API Google Drive поддерживает несколько типов операций загрузки и экспорта, как указано в следующей таблице:
| Действия по загрузке |
| ||||
| Экспортные действия |
|
Перед загрузкой или экспортом содержимого файла убедитесь, что пользователи могут загрузить файл, используя поле capabilities.canDownload в ресурсе files .
Описание упомянутых здесь типов файлов, включая файлы BLOB-объектов и файлы Google Workspace, см. в разделе «Типы файлов» .
Остальная часть этого руководства содержит подробные инструкции по выполнению подобных операций загрузки и экспорта.
Скачать содержимое файла BLOB
Для загрузки файла BLOB, хранящегося на Google Диск, используйте метод files.get , указав идентификатор загружаемого файла и параметр alt=media URL. Параметр alt=media URL сообщает серверу, что запрашивается загрузка контента в качестве альтернативного формата ответа.
Параметр URL-адреса alt=media является системным параметром, доступным для всех REST API Google. Если вы используете клиентскую библиотеку для API Google Drive, вам не нужно явно указывать этот параметр.
Приведённый ниже пример кода демонстрирует, как использовать метод files.get для загрузки файла с помощью клиентских библиотек Google Drive API.
Java
Python
Node.js
PHP
.СЕТЬ
В этом примере кода используется метод из библиотеки, который добавляет параметр URL alt=media к базовому HTTP-запросу.
Загрузка файлов, инициированная вашим приложением, должна быть авторизована с использованием области действия, разрешающей чтение содержимого файла. Например, приложение, использующее область действия drive.readonly.metadata не имеет права загружать содержимое файла. В этом примере кода используется ограниченная область действия «drive», которая позволяет пользователям просматривать и управлять всеми вашими файлами в Google Drive. Чтобы узнать больше об областях действия Google Drive, см. раздел «Выбор областей действия API Google Drive» .
Пользователи с правами owner (для файлов в моем Google Диске) или правами organizer (для файлов на общем диске) могут ограничивать загрузку с помощью объекта DownloadRestrictionsMetadata . Для получения дополнительной информации см. раздел «Запрет пользователям загружать, распечатывать или копировать ваш файл» .
Файлы, помеченные как содержащие вредоносный контент (например, вредоносное программное обеспечение), могут быть загружены только владельцем файла. Кроме того, необходимо указать параметр get acknowledgeAbuse=true , чтобы показать, что пользователь осознал риск загрузки потенциально нежелательного программного обеспечения или других вредоносных файлов. Ваше приложение должно интерактивно предупреждать пользователя перед использованием этого параметра запроса.
Частичная загрузка
Частичная загрузка подразумевает скачивание только указанной части файла. Вы можете указать часть файла, которую хотите загрузить, используя диапазон байтов в заголовке Range . Например:
Range: bytes=500-999
Скачать содержимое файла BLOB из более ранней версии
Вы можете загрузить только те версии содержимого BLOB-файлов, которые помечены как «Сохранить навсегда». Если вы хотите загрузить версию, сначала установите для нее параметр «Сохранить навсегда». Для получения дополнительной информации см. раздел «Указание версий для сохранения без автоматического удаления» .
Для загрузки содержимого BLOB-файлов более ранней версии используйте метод revisions.get , указав идентификатор загружаемого файла, идентификатор ревизии и параметр alt=media URL. Параметр alt=media URL сообщает серверу, что запрашивается загрузка содержимого в альтернативном формате ответа. Аналогично методу files.get , метод revisions.get также принимает необязательный параметр запроса acknowledgeAbuse и заголовок Range . Для получения дополнительной информации см. раздел «Управление длительными операциями» .
Здесь представлен протокол запроса.
GET https://www.googleapis.com/drive/v3/files/{FILE_ID}/revisions/{REVISION_ID}?alt=mediaСкачать содержимое файла BLOB в браузере
Для загрузки содержимого BLOB-файлов, хранящихся на Google Диск, непосредственно в браузере, а не через API, используйте поле webContentLink ресурса files . Если у пользователя есть доступ к загрузке файла, возвращается ссылка для скачивания файла и его содержимого. Вы можете либо перенаправить пользователя на этот URL, либо предложить его в виде кликабельной ссылки.
Загрузка содержимого BLOB-файлов во время длительных операций.
Для загрузки содержимого BLOB-файлов во время длительных операций используйте метод files.download , указав идентификатор загружаемого файла. При желании можно указать идентификатор ревизии.
Это единственный способ загрузить файлы Google Vids. При попытке экспорта файлов Google Vids вы получите ошибку fileNotExportable . Для получения дополнительной информации см. раздел «Управление длительными операциями» .
Экспорт содержимого документа Google Workspace
Для экспорта содержимого документа Google Workspace в байтах используйте метод files.export , указав идентификатор файла для экспорта и правильный MIME-тип . Экспортируемое содержимое ограничено 10 МБ.
В следующем примере кода показано, как использовать метод files.export для экспорта документа Google Workspace в формат PDF с помощью клиентских библиотек Google Drive API:
Java
Python
Node.js
PHP
.СЕТЬ
В этом примере кода используется ограниченная область действия drive , которая позволяет пользователям просматривать и управлять всеми вашими файлами в Google Диск. Чтобы узнать больше об областях действия Google Диск, см. раздел «Выбор областей действия API Google Диск» .
В приведенном примере кода также указан MIME-тип экспорта как application/pdf . Полный список всех поддерживаемых MIME-типов экспорта для каждого документа Google Workspace см. в разделе «MIME-типы экспорта для документов Google Workspace» .
Экспорт содержимого документа Google Workspace в браузере
Для экспорта содержимого документа Google Workspace в браузере используйте поле exportLinks ресурса files . В зависимости от типа документа для каждого доступного MIME-типа возвращается ссылка для загрузки файла и его содержимого. Вы можете либо перенаправить пользователя на URL-адрес, либо предложить ссылку в виде кликабельного файла.
Экспорт содержимого документа Google Workspace в более ранней версии в браузере.
Для экспорта содержимого документа Google Workspace в более ранней версии в браузере используйте метод revisions.get , указав идентификатор загружаемого файла и идентификатор версии, чтобы сгенерировать ссылку для экспорта, по которой можно выполнить загрузку. Если у пользователя есть доступ к загрузке файла, возвращается ссылка для скачивания файла и его содержимого. Вы можете либо перенаправить пользователя на этот URL-адрес, либо предложить его в виде кликабельной ссылки.
Экспорт содержимого документов Google Workspace во время длительных операций.
Для экспорта содержимого документов Google Workspace во время длительных операций используйте метод files.download , указав идентификатор загружаемого файла и идентификатор версии. Дополнительную информацию см. в разделе «Управление длительными операциями» .