описание обновления Google Drive api v3

#javascript #google-api #google-drive-api #google-api-js-client

#javascript #google-api #google-drive-api #google-api-js-client

Вопрос:

google drive api v3

Мне нужно изменить описание существующего объекта. Как мне изменить только это, оставив остальное без изменений?

Я делаю по аналогии с python. Я получаю метаданные файла, добавляю к нему строку «description» и выполняю обновление. Ошибок нет, описание просто не меняется

Я не очень разбираюсь в js, буду рад, если вы сможете мне помочь.

Спасибо

 function updateFile(fileId) {

  var request = gapi.client.drive.files.get({
    'fileId': fileId
  });
  request.execute(function(resp) {
    var data = resp;
    //data = data['result']
    data['description'] = "433434"
  });

  var fileMetadata = data;

  const boundary = '-------314159265358979323846';
  const delimiter = "rn--"   boundary   "rn";
  const close_delim = "rn--"   boundary   "--";

  var reader = new FileReader();
  reader.readAsBinaryString(fileData);
  reader.onload = function(e) {
    var contentType = fileData.type || 'application/octet-stream';
    // Updating the metadata is optional and you can instead use the value from drive.files.get.
    var base64Data = btoa(reader.result);
    var multipartRequestBody =
      delimiter  
      'Content-Type: application/jsonrnrn'  
      JSON.stringify(fileMetadata)  
      delimiter  
      'Content-Type: '   contentType   'rn'  
      'Content-Transfer-Encoding: base64rn'  
      'rn'  
      base64Data  
      close_delim;

    var request = gapi.client.request({
      'path': '/upload/drive/v3/files/'   fileId,
      'method': 'PATCH',
      'params': {'uploadType': 'multipart', 'alt': 'json'},
      'headers': {
        'Content-Type': 'multipart/mixed; boundary="'   boundary   '"'
      },
      'body': multipartRequestBody
    });
    if (!callback) {
      callback = function(file) {
        console.log(file)
      };
    }
    request.execute(callback);
  };
}
  

Комментарии:

1. В чем ваша текущая проблема?

2. Дело в том, что я не понимаю, как это сделать. Я реализовал его в pyton, но оказалось, что python не подходит для моей задачи. и js я знаю очень плохо

3. Спасибо за ответ. К сожалению, из вашего ответа я не смог понять текущую проблему вашего скрипта. Я приношу извинения за мой плохой уровень владения английским.

4. Я просто не знаю, как это сделать из-за плохого навыка js

5. @dwmorrin Спасибо всем, я разобрался со своей проблемой. Код, написанный в ответе

Ответ №1:

Спасибо всем, я разобрался со своей проблемой. Вот код, он работает для меня)

 function updateFile(fileId) {
    var request = gapi.client.drive.files.get({
      'fileId': fileId
    });
    request.execute(function(resp) {
      fileMetadata = resp;
      fileMetadata['description'] = "new_description";
      delete fileMetadata.id;
      var request = gapi.client.request({
        'path': '/drive/v3/files/'   fileId,
        'method': 'PATCH',
        'body': fileMetadata});
      request.execute(function(resp) {
      });
    })
  }