2016-01-23 5 views
2

У меня есть скрипт Google Apps на основе JavaScript, который выполняет итерацию по всем файлам на Диске и конвертирует файлы MS в формат Google. Я использую Drive API для загрузки и преобразования. Кажется, что все работает нормально, за исключением случаев, когда у меня есть файл в поддиректории диска. Когда файл загружается на диск, я не могу определить родительскую папку, поэтому он переходит непосредственно к корню.Загрузка Google Drive API в родительскую папку

У меня есть дескриптор идентификатора родительской папки, но когда я добавляю «parent: folderID» в строку JSON String, я не вижу никаких изменений в пути загрузки.

Это моя функция загрузки и преобразования, есть ли способ изменить это, чтобы определить родительскую папку? Я полностью потерял API ... Может ли кто-нибудь помочь?

+0

Глядя на [документации] (https://developers.google.com/drive/v2/reference/files/insert#request-body) для 'родителей []' описание , Догадываюсь, что до тех пор, пока вы правильно установите идентификатор folderID, вы сможете загрузить его в папку. Пожалуйста, дважды проверьте свой идентификатор папки. Кроме того, уже существует v3, доступный для [Drive API] (https://developers.google.com/drive/v3/web/about-sdk), поэтому я думаю, что это стоит посмотреть. Удачи! – gerardnimo

+0

У меня определенно правильный идентификатор родителя (зарегистрирован как идентификатор корня, так и подпапки). Независимо от того, как я форматировал строку JSON, файл всегда загружается в корневой каталог. Мне пришлось использовать смехотворную работу, которая была загружена в корневой каталог, а затем переместилась в подпапку. Поскольку вы не можете «перемещать» файлы в Дисковом интерфейсе, мне пришлось «скопировать», а затем удалить оригинал. Какая дерьмо работает, но она проделала свою работу. Наконец, я смог закончить скрипт. Это полный конвертер MS для Google для Диска с отображением разрешений. Спасибо за комментарий gerardnimo. Я буду проверять API V3 для будущих обновлений! – Dougie

ответ

6

С V3 API формат параметра родителей изменился (как представляется, не указано в документации, которая всегда делает вещи забавными). Родители больше не добавляются как объекты {id:}.

var folderId = '0BwwA4oUTeiV1TGRPeTVjaWRDY1E'; 
var fileMetadata = { 
    'name': 'photo.jpg', 
    'parents': [ folderId ] 
}; 
var media = { 
    mimeType: 'image/jpeg', 
    body: fs.createReadStream('files/photo.jpg') 
}; 
drive.files.create({ 
    resource: fileMetadata, 
    media: media, 
    fields: 'id' 
}, function(err, file) { 
    if(err) { 
    // Handle error 
    console.log(err); 
    } else { 
    console.log('File Id: ', file.id); 
    } 
}); 

Full documentation

+0

спасибо, что это работает для меня –

Смежные вопросы