2017-01-09 3 views
0

Мне удалось загрузить файл с Google Api, но он работает только с текстовыми файлами.Google Drive Api, Загрузка файла с помощью powershell

Как загрузить другие типы файлов?

Пример: Файл слово загружен, но когда я открываю его, я получаю

«К сожалению, мы не можем открыть файл, потому что мы обнаружили проблему с его содержанием»

Это код. Спасибо.

function getfile($uri){ 
    $results = Invoke-RestMethod ` 
    -Method GET ` 
    -Uri $uri ` 
    -Headers @{Authorization = Get-Token} ` 
    -ContentType application/json 

    return $results 
} 

$fileId = "word document id" 
$fileproperties = getfile -uri "https://www.googleapis.com/drive/v3/files/$fileId" 
$actualfile = getfile -uri "https://www.googleapis.com/drive/v3/files/$($fileId)?alt=media" 

$actualfile | out-file c:..\Desktop\$($fileproperties.name) 
+0

Функция 'getfile' возвращает тип содержимого json для всех запросов. который основан на тексте. если вы попытаетесь вернуть документ слова, поскольку json может быть тем, что вы вернетесь, будет поврежден. Я бы предложил сделать тип содержимого параметром функции, чтобы вы могли указать правильный тип mime при загрузке медиа – Nkosi

ответ

0

Я нашел, что если я использую -OutFile, он смог успешно загрузить.
Это работает только для документов Word и Excel.

Invoke-RestMethod ` 
    -Method GET ` 
    -Uri "https://www.googleapis.com/drive/v3/files/$($file.id)?alt=media" ` 
    -Headers @{Authorization = Get-Token} ` 
    -OutFile "C:fileLocation\$($file.name)" 

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

  • Нет связанных вопросов^_^