API Google Диска преобразует двоичные файлы в UTF-8?

#google-drive-api #google-api-js-client

#google-drive-api #google-api-js-client

Вопрос:

Я использую API Google Drive v3 на javascript для загрузки некоторых файлов. Поскольку API не может напрямую загружать, мне нужно создать файл, а затем ИСПРАВИТЬ его содержимое. Я делаю это таким образом:

 var pdf_file_content = some_binary_data;

gapi.client.drive.files.create({
  uploadType: 'media',
  name: 'my_nice_file.pdf',
  parents: [export_dir],
  body: {
    mimeType: 'application/pdf',
  }
}).then(
  function(res_creation) {
    gapi.client.request({
      path: '/upload/drive/v3/files/'   res_creation.result.id,
      method: 'PATCH',
      headers: {'Content-Type': 'application/pdf',},
      params: {
        uploadType: 'media'
      },
      body: some_binary_data
    });
  });
})
  

Однако загружаемый мной контент отличается от some_binary_data, поскольку он где-то преобразуется в UTF-8 самим API (я проверил печать длины моих двоичных данных и, наконец, длину результата загруженного файла). Пример взят из исходного байта 81, который я получаю после исправления C2 81.

Документация ужасна.

Есть идеи о том, что может происходить?

Спасибо!

Комментарии:

1. Могу ли я спросить вас о some_binary_data of var pdf_file_content = some_binary_data; в вашем скрипте? К сожалению, я не могу понять о. some_binary_data Я прошу прощения за это.

2. О да, конечно! Я извлекаю документы Google, экспортирую их в pdf с помощью javascript-клиента gapi, затем передаю его в библиотеку JS PDF, добавляю некоторые вещи, а затем восстанавливаю выходной PDF-файл в этой переменной.

3. Спасибо за ответ. О I am retrieving a Google Docs exporting it to pdf with javascript gapi client, then pass it to a JS PDF lib, add some bunch of stuff, then regenerate the output pdf in that variable , чтобы правильно понять это, можете ли вы обновить свой скрипт? Этим я хотел бы подтвердить это.