2013-04-16 5 views
0

Я пытаюсь загрузить файл с Google Диска с помощью API Python. Я просматриваю документацию, и я вижу def, который принимает два аргумента, экземпляр службы и экземпляр Диска. Я не вижу в любом месте Как создать экземпляр файла диска, чтобы перейти к def. Как это должно быть сделано? Возможно, я просто не понимаю что-то простое здесь, это тоже очень хорошая возможность ...Загрузка файла с API Google Диска

ответ

1

Возможно, вы захотите попробовать Temboo Python SDK, который содержит упрощенные методы работы с Google Диском (в дополнение к 100+ другим API). Посмотрите на https://www.temboo.com/library/Library/Google/Drive/Files/Get/

(Полное раскрытие: я работаю в Temboo.)

+0

Прохладный, я проверю это – user165222

4

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

f = service.files().get(fileId=file_id).execute() 
resp, content = service._http.request(f.get('downloadUrl')) 
+0

Вот что я говорю: https://developers.google.com/drive/v2/reference/files/get. Вы увидите def-файл download_file, и он имеет два аргумента. – user165222

+0

'drive_file = service.files(). Get (fileId = file_id) .execute()', надеюсь, что это поможет. Документация немного странная, мы должны ее исправить. Благодарю. –

2

Я согласен с ответом Бурку: метод «получить» Google Диск вернет только метаданные файла. Если вы хотите получить содержимое файла, вы должны загрузить его, используя его свойство downloadUrl, как указано Burcu. Итак: 1. Получите метаданные, 2. извлеките свойство downloadUrl и 3. загрузите с помощью HTTP-запроса.

Что касается вашего вопроса, то «Drive экземпляра файла, чтобы перейти к DEF» на самом деле построен из учетных данных, так, например:

/** 
* Returns the credentials of the user in the session. If user is not in the 
* session, returns null. 
* @param req Request object. 
* @param resp Response object. 
* @return  Credential object of the user in session or null. 
*/ 
protected Credential getCredential(HttpServletRequest req, 
    HttpServletResponse resp) { 
    String userId = (String) req.getSession().getAttribute(KEY_SESSION_USERID); 
    if (userId != null) { 
    return credentialManager.get(userId); 
    } 
    return null; 
}; 

/** 
* Build and return a Drive service object based on given request parameters. 
* @param credential User credentials. 
* @return Drive service object that is ready to make requests, or null if 
*   there was a problem. 
*/ 
protected Drive getDriveService(Credential credential) { 
    return new Drive.Builder(TRANSPORT, JSON_FACTORY, credential).build(); 
} 

Для полного объяснения вы можете найти на сайте: https://developers.google.com/drive/web/examples/java#putting_together_the_pieces_getting_a_complete_set_of_credentials_for_every_request

Смежные вопросы