2017-10-17 65 views
0

我正在开发使用Google Drive APIJAVA, 我想知道有关TeamDrive APIGoogle Drive APIs小系统。谷歌云端硬盘API - 如何使子文件夹入队驱动

首先,我创建团队驱动器文件夹,

创建组驱动

public static void createTeamDrive(String accessToken) throws IOException { 
    long startTime = System.currentTimeMillis(); 
    TeamDrive teamDriveMetadata = new TeamDrive(); 
    teamDriveMetadata.setName("Team Drive API Test"); 
    String requestId = UUID.randomUUID().toString(); 
    TeamDrive teamDrive = getDriveService(accessToken).teamdrives().insert(requestId, teamDriveMetadata).execute(); 
    System.out.println("[Create TeamDrive] execution time : " + (System.currentTimeMillis() - startTime)); 
} 

,然后我共享用户。

分享用户

public static Permission ShareUser(String teamDriveFolderId, String googleMail, String accessToken) { 
    long startTime = System.currentTimeMillis(); 
    Permission userPermission = new Permission().setRole("reader") 
      .setType("user").setEmailAddress(googleMail) 
      .setValue(googleMail).setWithLink(false); 
    try { 
     userPermission = getDriveService(accessToken).permissions().insert(teamDriveFolderId, userPermission) 
       .setSupportsTeamDrives(true).execute(); 
     System.out.println(userPermission.toPrettyString()); 
    } catch (IOException e) { 
     System.out.println(e); 
    } 
    System.out.println("[Give Permission] execution time : " + (System.currentTimeMillis() - startTime)); 
    return userPermission; 
} 

然后我尝试使用谷歌驱动器存储库几次创建子文件夹, 但我没能不断创造子文件夹。

创建子文件夹

public static void createSubFolder(String accessToken, String teamDriveFolderId) throws IOException { 
    long startTime = System.currentTimeMillis(); 
    File fileMetaData = new File(); 
    fileMetaData.setTitle("SubFolder Title "); 
    fileMetaData.setMimeType("application/vnd.google-apps.folder"); 
    fileMetaData.setTeamDriveId(teamDriveFolderId); 
    fileMetaData.setParents(Arrays.asList(new ParentReference().setId(teamDriveFolderId))); 
    fileMetaData.set("supportsTeamDrives", true); 
    fileMetaData.set("fields", "id"); 
    File file = null; 
    try { 
     file = getDriveService(accessToken).files().insert(fileMetaData).execute(); 
     System.out.println(file.getId()); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    System.out.println("[Create Sub folder] execution time : " + (System.currentTimeMillis() - startTime)); 
} 

当我称之为 'createSubfolderFunction' 我能得到这样的404响应。

com.google.api.client.googleapis.json.GoogleJsonResponseException: 404 Not Found 
{ 
    "code" : 404, 
    "errors" : [ { 
    "domain" : "global", 
    "location" : "file", 
    "locationType" : "other", 
    "message" : "File not found: 0AHGrQOmlzQZUUk9PVA", 
    "reason" : "notFound" 
    } ], 
    "message" : "File not found: 0AHGrQOmlzQZUUk9PVA" 
} 
    at com.google.api.client.googleapis.json.GoogleJsonResponseException.from(GoogleJsonResponseException.java:146) 

'0AHGrQOmlzQZUUk9PVA' is the exact result from createTeamDrive function. 

我提到了这个问题。 enter link description here

请看看我的源代码,并指出什么地方出了错。

回答

0

,我发现自己的问题, 我要补充setSupportTeamDrive(真)当我使用的插入方法。

file = getDriveService(accessToken).files().insert(fileMetaData).setSupportsTeamDrives(true).execute(); 
相关问题