Я пытаюсь создать файл в папке Google Диска.
Чтение из папки работает. Я уже читаю файлы в разных приложениях с разными учетными записями службы.
Я поделился своей папкой G Suite Drive со сгенерированным адресом электронной почты служебной учетной записи и предоставил ему доступ к редактору (чтение, запись, редактирование).
Я попытался скопировать существующий файл (а также создать пустой с нуля) из своего приложения Java Springboot.
public class TemplateDocumentManager {
@Value("${printing.template.id}")
private String baseTemplateFileId;
@Autowired
private Drive driveService;
public void createNewContractFromEmptyTemplate() throws IOException {
File templateFile = getDriveFiles().get(baseTemplateFileId).execute();
File newFileInstance = getDriveFiles()
.copy(baseTemplateFileId, templateFile)
.setSupportsAllDrives(true)
.execute();
log.error("Id of newly created file is: {}", newFileInstance.getId());
}
protected Drive.Files getDriveFiles() {
return driveService.files();
}
}
Служба Google Drive с добавленной аннотацией @Autowired
работает правильно. Он создается следующим образом:
@Configuration
public class DriveService {
public static final String APPLICATION_NAME = "appname";
@Autowired
GoogleCredential googleCredential;
@Bean("driveService")
public Drive createDriveService() throws GeneralSecurityException, IOException {
return new Drive.Builder(GoogleNetHttpTransport.newTrustedTransport(), JacksonFactory.getDefaultInstance(), googleCredential)
.setApplicationName(APPLICATION_NAME)
.build();
}
...
}
Любые идеи о том, что учетная запись службы должна иметь возможность писать в папку G Suite Drive?