Не удается открыть файл в Google Cloud Storage после загрузки POST - PullRequest
0 голосов
/ 20 ноября 2018

У меня возникли проблемы с загрузкой файла 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--

Спасибо!

...