У меня возникли проблемы с загрузкой файла PDF в мое хранилище Google Cloud Storage с использованием API REST (объяснено здесь: https://cloud.google.com/storage/docs/json_api/v1/how-tos/multipart-upload). В ответе отображается статус http 200, но при попытке открыть или загрузитьPDF-файл из моего ведра дает мне Неверный или поврежденный PDF-файл . Смотрите мой код, который я использую ниже:
var hostname = 'https://www.googleapis.com';
var file = 'pathToFile';
var file = WScript.CreateObject('ADODB.Stream');
file.Type = 1;
file.Open();
file.LoadFromFile(file);
file.Position = 0;
var http = WScript.CreateObject('Msxml2.ServerXMLHTTP.6.0');
http.open('POST', hostname + '/upload/storage/v1/b/[myBucket]/o', false);
var boundary = 'foo_bar_baz';
http.setRequestHeader('Content-Type', 'multipart/related; boundary=' + boundary);
http.setRequestHeader('Authorization', [myToken]);
var xml = WScript.CreateObject("MSXML2.DOMDocument");
var converter = xml.appendChild( xml.createElement("converter") );
converter.dataType = "bin.base64";
converter.nodeTypedValue = file.Read(file.Size);
boundary = '--' + boundary;
var body = boundary + '\r\nContent-Type: application/json; charset=UTF-8\r\n\r\n' + '{"name":"my.pdf", "mimeType": "application/pdf"}' + '\r\n'
body += '\r\n' + boundary + '\r\nContent-Type: application/pdf\r\n\r\n' + converter.text + '\r\n';
body += '\r\n' + boundary + '--'
http.send( body );
---- ОБНОВЛЕНИЕ ----
См. Тело ниже:
--foo_bar_baz
Content-Type: application/json; charset=UTF-8
{"name":"myPDF.pdf", "mimeType": "application/pdf"}
--foo_bar_baz
Content-Type: application/pdf
[base64 binary string]
--foo_bar_baz--
Спасибо!