Я хочу загрузить файлы на общий диск с помощью 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, который является командным или общим диском, в качестве родительского для загруженного файла, но все же я не могу просмотреть его в папке общего диска. Пожалуйста, помогите мне с этим.
Я добавляю полный поток: -
1.) Я создаю учетную запись службы, используя шаги, указанные на странице https://developers.google.com/identity/protocols/oauth2/service-account Я выбрал проект, дал описание и все остальное.
2.) Я не давал делегирование уровня домена учетной записи службы, а использовал общий диск DB (общий диск) с адресом учетной записи службы (который был упомянут в файле credentials.json как client_email *****. Gserviceaccount.com)
3.) Затем я использовал приведенный выше код для загрузки файла, запрашивающего учетную запись службы для загрузки файла на общий диск, то есть DB-Drive, указав идентификатор DB-Drive в качестве родительского идентификатора файла.
4.), но файл по-прежнему загружается на диск учетной записи службы, он не связывается с общим диском.
5.) DB-Drive - это родительская папка (единственная папка).
Любые зацепки будут большим подспорьем.
drive
. - person ziganotschka   schedule 10.08.2020supportsAllDrives=true
. Пожалуйста, проверьте его без учетной записи службы, из Попробуйте этот API. - person ziganotschka   schedule 10.08.2020