我正在尝试使用Node和Google Docs REST API上传文件。如果我不包含元数据,我可以上传文件,但它将始终上传为“无标题”。
但是当我包含元数据时,我发送原子数据并尝试继续文件上传后会收到以下错误:
ParseException - prolog中不允许使用内容
这是我第一次创建上传会话并获得可恢复媒体链接的请求
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);
这是我获得resumable-media-link
后的第二个请求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();
好像我正在错误地发送原子数据。关于我可能做错的任何想法?
答案 0 :(得分:0)
我弄清楚我做错了什么。
我需要在第一个POST请求中设置'Slug'标头以启动可恢复的会话。
我在以下请求中有它。