我想用java将文件上传到共享驱动器。我已创建了一个服务帐户,并已将共享驱动器(名称为DB drive)与服务帐户的地址共享。
private static HttpTransport httpTransport;
private static Drive drive;
主功能(初始化和列出文件)
httpTransport = GoogleNetHttpTransport.newTrustedTransport();
Credential credential = authorize();
drive = new Drive.Builder(httpTransport, JacksonFactory.getDefaultInstance(), credential).setApplicationName(
"Quickstart").build();
uploadFile();
FileList result = drive.files().list().execute();
List<File> files = result.getFiles();
if (result == null || result.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());
}
}
}
授权码
GoogleCredential credential = GoogleCredential.fromStream(new FileInputStream("resources/credentials.json"))
.createScoped(Collections.singleton(DriveScopes.DRIVE_FILE));
return credential;
上传代码
String folderId = "***DB-Drive id****";
File fileMetadata = new File();
fileMetadata.setName("photo.jpg");
fileMetadata.setParents(Collections.singletonList(folderId));
java.io.File filePath = new java.io.File("/home/*****/Downloads/qck_1552369371.jpeg");
FileContent mediaContent = new FileContent("image/jpeg", filePath);
File file = drive.files().create(fileMetadata, mediaContent)
.setFields("id, parents")
.execute();
System.out.println("File ID: " + file.getId());
return file;
我正在将DB Drive(teamdrive或shareddrive)设置为上传文件的父级,但我仍然无法在共享驱动器文件夹中查看该文件。。请帮帮我。
我正在添加完整的流程:-
1.)我使用https://developers.google.com/identity/protocols/oauth2/service-account提到的步骤创建服务号,我选择了项目并给出了描述和一切。
2.)我没有向服务帐户授予域级别的授权,而是使用服务帐户地址(credentials.json文件中提到的client_email*****.gserviceaccount.com)共享了DB驱动器(团队驱动器)
3.)然后我使用上面的代码上传文件,请求服务帐户将文件上传到共享驱动器,即DB驱动器,方法是将DB驱动器的id指定为文件的父id。
4.)但文件仍会上载到服务帐户的驱动器,而不会链接到共享驱动器。
5.)DB-Drive是父文件夹(唯一的文件夹)。
任何线索都会帮上大忙。
正如@ziganotschka指出的,如果在共享驱动器中创建文件,则需要将supportsAllDrives
设置为true。Java客户端的setSupportSteamDrive
选项已被弃用。而是使用setSupportsAllDrives
设置为true。
supportsAllDrives
设置为true
)是否可以使用服务帐户创建共享驱动器?。 由于没有UI服务号创建文件/文件夹,我需要一些方法 /APIs支持创建共享驱动器。 我可以在服务号下创建孩子(文件和文件夹),但不确定如何使用服务号创建共享驱动器。 向你问好,索拉夫
我试图创建一个共享驱动器(在谷歌驱动器),使用API v3(通过python客户端库google-api-python-Client)。下面的代码: 但出现了一个错误: GoogleapClient。错误。HttpError: 错误是直观的,但我的问题是关于我需要给API用户帐户的正确权限,因为: 这个用户不是个人帐户,但它是服务帐户,因为它在API中使用,应该为我的应用程序的每个客户创建一个共享
我想上传文件到我的谷歌驱动器使用谷歌服务号凭据。 我从谷歌开发者控制台下载了一个JSON文件作为凭证,并从中获得了凭证。 这是我的代码片段。 代码运行,没有错误,但是我找不到上传到我的Google Drive帐户的文件。我不知道为什么文件没有上传。你愿意帮我解决这个问题吗?
我已经建立了一个新的服务帐户,可以访问Google Drive API。我现在想与服务帐户用户共享我的一个驱动器。 现有建议建议建议您只需使用服务帐户电子邮件地址共享驱动器。不幸的是,这会产生以下错误: 我需要做些什么来让我的服务账户成为“谷歌账户”吗? 谢谢 卡尔
谷歌应用程序管理服务帐户的“无限”帐户存储配额 你能帮忙吗?