Невозможно назначить родительскую папку при создании файла. Файл не найден - PullRequest
0 голосов
/ 15 октября 2019

Моя служебная учетная запись может читать файлы и папки без каких-либо проблем. Когда я пытаюсь создать новую папку или файл в существующей папке, используя fileId в качестве родителя, родитель всегда возвращается «Файл не найден». Я запросил на диске наличие доступных папок и появляется папка, которую я пытаюсь использовать в качестве родительской.

Я использую область действия 'https://www.googleapis.com/auth/drive', которая, как я полагаю, является глобальной.

exports.listDrives = async function listDrives(drive) {
    const res = await drive.drives.list()
    if (res.data) {
        return {success: true, data: res.data}
    } else {
        return {success: false, message: 'Error listing drives.'}
    }
}

exports.listFiles = async function listFiles(drive) {
    const res = await drive.files.list({driveId: '0AE58XC8YRuIHUk9PVA', includeItemsFromAllDrives: true, corpora: 'drive', supportsAllDrives: 'true'})
    if (res.data) {
        return {success: true, data: res.data}
    } else {
        return {success: false, message: 'Error requesting file list.'}
    }
}

exports.createFolder = async function createFolder(drive, projectName) {

    const resource = {
        name: Date.now().toString(),
        mimeType: 'application/vnd.google-apps.folder',
        parents: ['1cmEWI_iRQ0R2QHZE1lhbIB9KcbtTts1C']
        // parent contained in listed drive
    }

    const res = await drive.files.create({
        resource
    }).catch(e => {
        console.log('error creating file', e.errors)
    })

    if (res.data) {
        console.log(res.data)
        return {success: true, data: res.data}
    } else {
        return {success: false, message: 'Error creating folder.'}
    }
}



Output I'm receiving: 

{ kind: 'drive#driveList',
  drives:
   [ { kind: 'drive#drive',
       id: '0AHau-J3SwHpjUk9PVA',
       name: 'FlashSparkTest' },
     { kind: 'drive#drive',
       id: '0AE58XC8YRuIHUk9PVA',
       name: 'TestTwo' } ] }
{ kind: 'drive#fileList',
  incompleteSearch: false,
  files:
   [ { kind: 'drive#file',
       id: '1cmEWI_iRQ0R2QHZE1lhbIB9KcbtTts1C',
       name: 'test2 testFolder',
       mimeType: 'application/vnd.google-apps.folder',
       teamDriveId: '0AE58XC8YRuIHUk9PVA',
       driveId: '0AE58XC8YRuIHUk9PVA' } ] }
error creating file [ { domain: 'global',
    reason: 'notFound',
    message: 'File not found: 1cmEWI_iRQ0R2QHZE1lhbIB9KcbtTts1C.',
    locationType: 'parameter',
    location: 'fileId' } ]

1 Ответ

0 голосов
/ 16 октября 2019

Решил это путем переключения на аутентификацию JWT. Если кто-нибудь столкнется с этой проблемой в будущем, это отличный учебник:

https://www.youtube.com/embed/gGSJpp6_ax0

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...