, . .
, . :
gapi.client.drive.files.create({
'supportsTeamDrives':"true",
'teamDriveId': 'teamID',
"name" : 'test',
"mimeType" : "application/vnd.google-apps.folder",
'parents': ['folderID']
}).then(function(response) {
console.log(response)
}
);
.
, :
function insertFile(fileData, callback, desc, folderID) {
const boundary = '-------314159265358979323846';
const delimiter = "\r\n--" + boundary + "\r\n";
const close_delim = "\r\n--" + boundary + "--";
var reader = new FileReader();
reader.readAsBinaryString(fileData);
reader.onload = function(e) {
var contentType = fileData.type || 'application/octet-stream';
var metadata = {
'title': fileData.name,
'mimeType': contentType,
'description': desc,
"parents": [
{
"id": folderID
}
]
};
var base64Data = btoa(reader.result);
var multipartRequestBody =
delimiter +
'Content-Type: application/json\r\n\r\n' +
JSON.stringify(metadata) +
delimiter +
'Content-Type: ' + contentType + '\r\n' +
'Content-Transfer-Encoding: base64\r\n' +
'\r\n' +
base64Data +
close_delim;
var request = gapi.client.request({
'path': '/upload/drive/v2/files',
'method': 'POST',
'params': {'uploadType': 'multipart'},
'headers': {
'Content-Type': 'multipart/mixed; boundary="' + boundary + '"'
},
'body': multipartRequestBody
});
if (!callback) {
callback = function(file) {
console.log(file)
};
}
request.execute(callback);
}
}
, , :
gapi.client.drive.files.update({
fileId: fileId,
'supportsTeamDrives':"true",
'corpora':"teamDrive",
'teamDriveId': teamdriveID,
addParents: folderID,
removeParents: previousParents,
fields: 'id, parents'
}).then(function(response) {
console.log(response.result.parents)
});
, , , .
, , .
, - .
EDIT:
,
async function readFile(file){
let reader = new FileReader();
reader.readAsBinaryString(file);
return await new Promise(resolve => {
reader.onload = e => {
resolve(btoa(e.target.result));
};
});
}
async function insertFile(fileData) {
try {
const boundary = '-------314159265358979323846';
const delimiter = "\r\n--" + boundary + "\r\n";
const close_delim = "\r\n--" + boundary + "--";
let base64Data = null;
await readFile(fileData).then(function(e) {
base64Data = e;
});
var contentType = fileData.type || 'application/octet-stream';
var metadata = {
'title': fileData.name,
'mimeType': contentType,
"parents": [
{
"id": 'root'
}
]
};
var multipartRequestBody =
delimiter +
'Content-Type: application/json\r\n\r\n' +
JSON.stringify(metadata) +
delimiter +
'Content-Type: ' + contentType + '\r\n' +
'Content-Transfer-Encoding: base64\r\n' +
'\r\n' +
base64Data +
close_delim;
const fulfilledValue = await gapi.client.request({
'path': '/upload/drive/v2/files',
'method': 'POST',
'params': {'uploadType': 'multipart'},
'headers': {
'Content-Type': 'multipart/mixed; boundary="' + boundary + '"'
},
'body': multipartRequestBody
});
let result = await fulfilledValue.result;
return result;
}
catch (rejectedValue) {
console.log("Failed to insert file into folder", rejectedValue);
}
}
async function insertTeamDrive(file, teamdriveID, folderID) {
try {
let id = null;
await insertFile(file).then(function(e) {
id = e.id;
});
await gapi.client.drive.files.update({
fileId: id,
'supportsTeamDrives':"true",
'corpora':"teamDrive",
'teamDriveId': teamdriveID,
addParents: folderID,
removeParents: 'root',
fields: 'id, parents'
}).then(function(response) {
console.log(response.result)
});
}
catch (rejectedValue) {
console.log("Failed to insert into team drive", rejectedValue);
}
}
insertTeamDrive , .