#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) {
});
})
}