使用API 在Google界面上不可见的Google驱动器文件夹/文件创建

问题描述 投票:2回答:4

这很奇怪。我使用Google Drive API在Google Drive中创建一个文件夹,然后将文件上传到该文件夹​​中。我可以使用相同的API来检索文件夹和文件(代码在所有方面都工作正常)。但是,当我进入Google云端硬盘网络界面时,似乎找不到该文件夹​​或文件。该文件也不会同步到我的本地驱动器。 API或其他地方是否有设置将“可见性”设置为“开”?

谢谢你。

google-drive-api
4个回答
0
投票

创建文件夹时,应确保设置了一个父文件夹,例如'root'。否则,它将不会显示在“我的云端硬盘”中,而只会显示在搜索中(您是否尝试过在用户界面中搜索?)

由于已经创建了文件夹,因此可以更新文件并为其指定父根。

您可以使用Parents insert 'Try it now'示例进行测试。

将您的文件夹ID放在fileId框中,然后在请求正文中,在ID字段中添加root


0
投票

我有同样的问题。原来是权限。通过服务帐户上传文件后,该服务帐户被设置为所有者,因此您无法从云端硬盘界面看到文件。我在网上找到了解决方案(但似乎再也找不到了...)这就是我所做的...

是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所建议的那样,但是我得到了一个错误,并说他们正在为此工作。我还没有玩过其他设置(我昨晚在文学方面做到了)。让我知道您是否在权限方面有任何其他组合。

希望有所帮助


0
投票
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();
    }

0
投票

[我遇到了同样的问题,但是这可以通过为父母参数使用列表数据类型来解决,例如:如果要在文件夹下创建一个文件夹(“ 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()
© www.soinside.com 2019 - 2024. All rights reserved.