2017-05-20 43 views
0

当我将Google云端硬盘目录的所有权转让给其他用户时,它不会转让其子目录/文件的所有权。将Google云端硬盘目录的所有权转让给其他用户

我可以递归地传输所有文件,但我觉得这是一个太复杂的解决方案,我也担心,如果有数百个文件,我可能会收到API限制错误。

解释批量请求的documentation表示这是可能的,但我使用的NodeJS示例似乎并没有真正发出批量请求,而只是在先前调用成功后才调用相同的API。

是否有一个可能的技巧,我可以用来传输目录和儿童和下一代在一次电话?

回答

1

您可以尝试searching所有具有该目录父项的文件。

'1234567' in parents 

然后将其添加到批量请求中。

{ 
    var batch = new googleBatch(); 
    batch.setAuth(authClient.gapi.token); 

    batch.add({ 
     method: 'PUT', 
     fileId: myId, 
     addParents: addParents.join(','), 
     removeParents: removeParents.join(','), 
     fields: ['title', 'id', 'parents'].join(',') 
    }); 

    batch.add({ 
     method: 'PUT', 
     fileId: myId, 
     body: { 
      title: 'myNewTitle' 
     } 
    }); 

    batch.exec(function(errors, responses){ 
     // your stuff 
    }); 

} 

编辑将与您想要实现的代码相匹配的代码。请参阅此link中的其他信息。

注:一套ň请求分批在一起向你的使用限制为ñ请求,而不是作为一个请求计数。批处理请求在处理之前被分解为一组请求。

希望这会有所帮助。

+0

这是一个有趣的解决方案。 不幸的是我无法验证它,因为我采用了不同的方式获取用户权限,因此我的服务器会直接将文件上传到他的谷歌云端账户,而不是转移所有权。 我得出这样的结论:这是一种更好的方式,因为即使我设法提出批量请求,问题可能是新的所有者会收到数百个电子邮件通知,这些电子邮件通知在转让所有权时无法禁用,另一个问题是所有文件将被复制到新所有者的根文件夹中 – Ariel

相关问题