这很奇怪。我使用Google Drive API在Google Drive中创建一个文件夹,然后将文件上传到该文件夹中。我可以使用相同的API来检索文件夹和文件(代码在所有方面都工作正常)。但是,当我进入Google云端硬盘网络界面时,似乎找不到该文件夹或文件。该文件也不会同步到我的本地驱动器。 API或其他地方是否有设置将“可见性”设置为“开”?
谢谢你。
创建文件夹时,应确保设置了一个父文件夹,例如'root'。否则,它将不会显示在“我的云端硬盘”中,而只会显示在搜索中(您是否尝试过在用户界面中搜索?)
由于已经创建了文件夹,因此可以更新文件并为其指定父根。
您可以使用Parents insert 'Try it now'示例进行测试。
将您的文件夹ID放在fileId框中,然后在请求正文中,在ID字段中添加root。
我有同样的问题。原来是权限。通过服务帐户上传文件后,该服务帐户被设置为所有者,因此您无法从云端硬盘界面看到文件。我在网上找到了解决方案(但似乎再也找不到了...)这就是我所做的...
是C#,您的问题未指定。上传后获取响应正文后,您感兴趣的代码就是权限内容。
FilesResource.InsertMediaUpload request = service.Files.Insert(body, stream, "text/plain");
request.Upload();
//Start here...
Google.Apis.Drive.v2.Data.File file = request.ResponseBody;
Permission newPermission = new Permission();
newPermission.Value = "[email protected]";
newPermission.Type = "user";
newPermission.Role = "reader";
service.Permissions.Insert(newPermission, file.Id).Execute();
此文件在驱动器UI上可见。我尝试为该角色指定“所有者”,就像api所建议的那样,但是我得到了一个错误,并说他们正在为此工作。我还没有玩过其他设置(我昨晚在文学方面做到了)。让我知道您是否在权限方面有任何其他组合。
希望有所帮助
private void SetFilePermission(string fileId)
{
Permission adminPermission = new Permission
{
EmailAddress = "[email protected]", // email address of drive where
//you want to see files
Type = "user",
Role = "owner"
};
var permissionRequest = _driveService.Permissions.Create(adminPermission, fileId);
permissionRequest.TransferOwnership = true; // to make owner (important)
permissionRequest.Execute();
Permission globalPermission = new Permission
{
Type = "anyone",
Role = "reader"
};
var globalpermissionRequest = _driveService.Permissions.Create(globalPermission, fileId);
globalpermissionRequest.Execute();
}
[我遇到了同样的问题,但是这可以通过为父母参数使用列表数据类型来解决,例如:如果要在文件夹下创建一个文件夹(“ 1TBymLMZXPGkouw-lTQ0EccN0CMb_yxUB”),那么python代码将类似于] >
drive_service = build('drive', 'v3', credentials=creds)
body={
'name':'generated_folder',
'parents':['1TBymLMZXPGkouw-lTQ0EccN0CMb_yxUB'],
'mimeType':'application/vnd.google-apps.folder'
}
doc = drive_service.files().create(body=body).execute()