Как создать BLOB-объект PDF-файла, когда у вас есть контент - PullRequest
0 голосов
/ 05 августа 2020

Я пытался получить метаданные файла Google Диска с помощью этого Files.get и Google File Picker . После успешного запроса (статус 200) я получил ответ:

Snapshot of the response

This is the raw response:

{
  "gapiRequest":{
    "data":{
      "body":"%PDF-1.5\n%¿÷¢þ\n2....6\n%%EOF\n",
      "headers":{
        "cache-control":"private,max-age=0, must-revalidate",
        "content-encoding":"gzip",
        "content-type":"text/plain;charset=UTF-8",
        "date":"Wed, 05 Aug 2020 14:44:43 GMT",
        "expires":"Wed, 05 Aug 2020 14:44:43 GMT",
        "server":"UploadServer",
        "vary":"Origin, X-Origin",
        "x-guploader-uploadid":"AAANsUmkhdrrBAhb1C30yaK09LEZzu1BjYUmIAU9iI9J3lYXHih-4CUPFP6jDhC-sc-xveULFdcNJFp5oQhpQrgzluhWTSvrYg",
        "Content-Type":"application/pdf"
      },
      "status":200
     }
   }
 }

Затем я создал Blob, используя содержимое тела, т.е. gapiRequest.data.body, и сделал ссылка для загрузки с этим Blob, но когда я загружаю, он не может загрузить файл PDF. Там написано: «Не удалось загрузить PDF»

Мой код:

var request = window.gapi.client.request({
   'path': `https://www.googleapis.com/drive/v3/files/${fileId}?alt=media`,
   'method': 'GET'
});
request.execute((json, raw) => {
   console.log('JSON: ', json, '\nRAW: ', JSON.parse(raw));
   var val = JSON.parse(raw).gapiRequest.data.body;
   var myBlob = new Blob([val], { type: 'application/pdf' })

    //making a downloadable link. 
    var url = window.URL.createObjectURL(myBlob);
    document.getElementById('download-file').href = url;
});

Я также привязываю полный код приложения. js здесь

...