下午好!
我在访问Google Team Drive时遇到问题。
我需要创建文件夹并从本地存储上载文件,所有这些都应由我的应用程序完成。
目前,我已经学会了连接到我的个人Google云端硬盘并在那里上传文件。我的个人存储连接代码:
Drive service = new Drive.Builder(HTTP_TRANSPORT, JSON_FACTORY, credential) //
.setApplicationName(APPLICATION_NAME).build();
// Print the names and IDs for up to 10 files.
FileList result = service.files().list().setPageSize(10).setFields("nextPageToken, files(id, name)").execute();
List<File> files = result.getFiles();
if (files == null || files.isEmpty()) {
System.out.println("No files found.");
} else {
System.out.println("Files:");
for (File file : files) {
System.out.printf("%s (%s)\n", file.getName(), file.getId());
}
}
告诉我,如何连接到Java中的Google Team Drive,并在那里上传文件?谢谢:)
假设您已经满足了先决条件,即>]
您的代码应如下所示:
private static final String APPLICATION_NAME = "YOUR APPLICATION"; private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance(); private static final List < String > SCOPES = Collections.singletonList("XXXINSERTHEREYOURSCOPEXXXX"); public static void main(String...args) throws IOException, GeneralSecurityException { final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport(); File pk12 = new File("quickstartserv.p12"); String serviceAccount = "EMAIL FO YOUR SERVICE ACCOUNT.iam.gserviceaccount.com"; // Build service account credential.Builder necessary for the ability to refresh tokens GoogleCredential getCredentials = new GoogleCredential.Builder() .setTransport(HTTP_TRANSPORT) .setJsonFactory(JSON_FACTORY) .setServiceAccountId(serviceAccount) .setServiceAccountPrivateKeyFromP12File(pk12) .setServiceAccountScopes(SCOPES) .setServiceAccountUser("xxx") //IF YOU WANT TO IMPERSONATE A USER .build(); // Build a new authorized API client service. Drive service = new Drive.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials) .setApplicationName(APPLICATION_NAME) .build(); FileList result = service.files().list().setPageSize(10).setQ('"ID OF THE SHARED DRIVE" in parents').setIncludeTeamDriveItems(true).setSupportsTeamDrives(true).setFields("nextPageToken, files(id, name)").execute(); ... }
请注意,从共享驱动器中检索文件需要
setIncludeTeamDriveItems(true)
和setSupportsTeamDrives(true)
。