Я пытаюсь загрузить файл, используя Node и Google Docs REST API.Я могу загрузить файл просто отлично, если я не включу метаданные, но он всегда будет загружен как «Без названия».
Но когда я включаю метаданные, я получаю следующую ошибку после отправки моих данных атомаи попытка продолжить загрузку файла:
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();
Похоже, я неправильно отправляю данные атома.Есть идеи, что я могу делать не так?