Я пытаюсь загрузить файл, используя REST API Node и Google Docs. Я могу загрузить файл просто отлично, если я не включаю метаданные, но он всегда будет загружен как «Без названия».API Документов Google: невозможно установить заголовок документа
Но когда я включаю мета данных, я получаю следующее сообщение об ошибке после отправки моих данных атом и пытается продолжить загрузку файла:
ParseException - Содержимое не допускается в прологе
Это мой первый запрос на создание сеанса загрузки и получить возобновляемую-медиа-ссылку
var meta = '<?xml version="1.0" encoding="UTF-8"?>'
meta+= '<entry xmlns="http://www.w3.org/2005/Atom" xmlns:docs="http://schemas.google.com/docs/2007">'
meta+= '<category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/docs/2007#document"/>'
meta+= '<title>Test</title></entry>'
var options = {
host: 'docs.google.com',
path: '/feeds/upload/create-session/default/private/full',
method: 'POST',
headers: {
'Host' : 'docs.google.com',
'Content-Length' : meta.length,
'Content-Type': 'application/atom+xml',
'GData-Version' : 3,
'Authorization' : 'GoogleLogin auth=' + authToken,
'X-Upload-Content-Type' : 'application/msword',
'X-Upload-Content-Length' : 31232
}
}
var req = https.request(options, function (res) {
// make 2nd request
});
req.end(meta);
Это то, что мой второй запрос выглядит как после получения возобновляемой-медиа-ссылки
var options = {
host: 'docs.google.com',
path: resumableMediaLink,
method: 'PUT',
headers: {
'Content-Length': data.length,
'Content-Type': 'application/msword',
'Content-Range': 'bytes 0-' + (data.length-1) +'/'+ data.length
}
}
var req = https.request(options, function (res) {
res.on('data', function (chunk) {
// ...
});
});
req.write(data);
req.end();
Похоже, что я посылаю данные об атоме неправильно. Любые идеи о том, что я могу делать неправильно?