Существует несколько факторов, которые необходимо учитывать, чтобы изменить тип доступа к определенному файлу / папке. Обмен файлами, папками и дисками содержит все детали и параметры, которые могут быть изменены. Для этого программно. Выполните следующие шаги:
1) Список файлов:
Выведите список всех файлов в указанной папке c, которую вы хотите изменить, с помощью параметра q
, к сожалению, есть ошибка с google-api- nodejs -client , в котором параметр q
не будет возвращать файлы. Об ошибке сообщается здесь , так что вы можете оставить комментарий или дать большой знак, чтобы сообщить Google, что у вас также есть эта проблема. В качестве обходного пути я рекомендую использовать ax ios.
const queryFoldersWithAxios = async () => {
const params = {
q: "'<YOUR_FOLDER_ID>' in parents",
fields: "files(name,id)"
};
const headers = {
"Authorization": "Bearer <YOUR_ACCESS_TOKEN>",
"Content-Type": "application/json"
}
return await axios.get("https://www.googleapis.com/drive/v3/files", {params, headers})
}
2) Создать разрешения
Вы можете создать новое разрешение, просто передав идентификатор файла.
const createPermissions = async (drive, fileId) => {
// Return the Promise result after completing its task
return new Promise((resolve, reject) => {
const body = {
"role": "reader",
"type": "anyone"
};
return drive.permissions.create({
fileId,
resource: body
},(err, results) => err ? reject(err) : resolve(results));
});
}
3) Список разрешений файла
Вы можете проверить все разрешения в файле, перечислив его разрешения, и даже получить идентификаторы разрешений.
const listFilePermissions = async (drive, fileId) => {
// Return the Promise result after completing its task
return new Promise((resolve, reject) => {
return drive.permissions.list({ fileId }, {
"fields": 'permissions'
},(err, results) => err ? reject(err) : resolve(results))
});
}
Уведомление
В качестве примера того, что вы можете сделать, сделайте второй шаг. Пожалуйста, прочитайте Обмен файлами, папками и дисками , чтобы узнать все возможные комбинации, которые вы могли делать. Кроме того, вы можете поиграть с Попробуйте этот API , чтобы проверить разрешения перед их реализацией в коде.