#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
ofvar 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
, чтобы правильно понять это, можете ли вы обновить свой скрипт? Этим я хотел бы подтвердить это.