Google Drive 컴포넌트
Google Drive 컴포넌트는 Google Drive 파일 스토리지 서비스를 Google Drive Web API를 통해 다룰 수 있게 해 주는 컴포넌트예요. 파일·공유 드라이브·권한·댓글·답글·리비전 같은 연산이 9개 API로 나뉘어 제공되고, producer와 consumer를 모두 지원해요. 인증은 OAuth 2.0 자격 증명(clientId, clientSecret, refreshToken)이나 서비스 계정 키(serviceAccountKey)로 설정합니다.
출처: 문서
본문
Camel 2.14부터 지원
producer와 consumer 모두 지원
Google Drive 컴포넌트는 Google Drive Web APIs를 통해 Google Drive 파일 스토리지 서비스에 접근하게 해 줘요.
Google Drive는 Google 계정 인증과 사용자 데이터 접근 승인에 OAuth 2.0 프로토콜을 사용해요. 이 컴포넌트를 쓰려면 먼저 계정을 만들고 OAuth 자격 증명을 생성해야 해요. 자격 증명은 clientId, clientSecret, refreshToken으로 이루어져요. 수명이 긴 refreshToken을 만들 때는 OAuth playground가 요긴한 도구예요.
서비스 계정의 경우 자격 증명은 JSON 파일(serviceAccountKey) 하나로 이루어져요. 도메인 전체 권한 위임(delegate)을 쓸 수도 있고, Drive API (V2) 인증 스코프를 하나, 여러 개, 또는 전부 지정할 수도 있어요.
Maven 사용자는 이 컴포넌트를 쓰려면 pom.xml에 다음 의존성을 추가해야 해요:
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-google-drive</artifactId>
<!-- use the same version as your Camel core version -->
<version>x.x.x</version>
</dependency>
URI 형식 (URI Format)
GoogleDrive 컴포넌트는 다음 URI 형식을 사용해요:
google-drive://endpoint-prefix/endpoint?[options]
옵션 설정 방법 (Configuring Options)
Camel 컴포넌트는 두 단계로 나눠 설정합니다:
-
컴포넌트(component) 레벨
-
엔드포인트(endpoint) 레벨
컴포넌트 옵션 설정 (Configuring Component Options)
컴포넌트 레벨에서는 엔드포인트들이 이어서 물려받는 일반적이고 공유되는 설정을 해요. 가장 상위의 설정 레벨이죠.
예를 들어 컴포넌트에는 보안 설정, 인증용 자격 증명, 네트워크 연결 URL 같은 것들이 있을 수 있어요.
컴포넌트에 따라 옵션이 몇 개뿐인 것도 있고 아주 많은 것도 있어요. 컴포넌트는 보통 널리 쓰이는 기본값이 미리 설정되어 있어서, 몇 가지 옵션만 설정하거나 아예 하나도 건드리지 않아도 되는 경우가 많아요.
컴포넌트는 다음 방법으로 설정할 수 있어요:
-
the Component DSL.
-
설정 파일(
application.properties,*.yaml파일 등). -
Java 코드에서 직접.
엔드포인트 옵션 설정 (Configuring Endpoint Options)
엔드포인트는 옵션이 많아서 설정에 시간을 더 쓰게 될 거예요. 이 옵션들이 엔드포인트가 원하는 일을 하도록 커스터마이즈해 줘요. 옵션은 엔드포인트가 consumer(from)로 쓰이는지, producer(to)로 쓰이는지, 둘 다인지에 따라 분류되기도 해요.
엔드포인트 설정은 대부분 엔드포인트 URI에 _path_와 query 파라미터로 바로 하는 경우가 많아요. Java에서 엔드포인트와 데이터 포맷을 _타입 세이프_하게 설정하려면 Endpoint DSL과 DataFormat DSL을 쓸 수도 있어요.
옵션을 설정할 때 좋은 습관은 Property Placeholders를 사용하는 거예요.
프로퍼티 플레이스홀더는 이런 장점이 있어요:
-
URL, 포트 번호, 민감한 정보 같은 설정을 하드코딩하는 걸 막아 줘요.
-
설정을 코드 밖으로 분리할 수 있어요.
-
코드가 더 유연해지고 재사용하기 좋아져요.
다음 두 섹션에서 모든 옵션을 나열해요. 먼저 컴포넌트 옵션, 그다음 엔드포인트 옵션 순서예요.
컴포넌트 옵션 (Component Options)
Google Drive 컴포넌트가 지원하는 옵션은 아래와 같아요.
| Name | Description | Default | Type |
|---|---|---|---|
| applicationName (common) | Google 드라이브 애플리케이션 이름이에요. 예를 들면 camel-google-drive/1.0 같은 식이에요. | String | |
| clientId (common) | 드라이브 애플리케이션의 클라이언트 ID예요. | String | |
| configuration (common) | 공유 설정(shared configuration)을 사용해요. | GoogleDriveConfiguration | |
| delegate (common) | 도메인 전체 권한을 가진 서비스 계정의 위임자(delegate)예요. | String | |
| scopes (common) | 캘린더 애플리케이션이 사용자 계정에 대해 갖기를 원하는 권한 수준을 지정해요. 자세한 내용은 https://developers.google.com/identity/protocols/googlescopes를 참고하세요. 스코프가 여러 개면 쉼표로 구분하면 돼요. | String | |
| bridgeErrorHandler (consumer) | 컨슈머를 Camel 라우팅 에러 핸들러(Error Handler)에 브리지할 수 있게 해 줘요. 즉, Camel 컨슈머가 들어오는 메시지를 집어 올리는 동안 등에서 예외가 발생하면(가능한 경우), 그 예외를 메시지로 처리해서 라우팅 에러 핸들러가 다루게 돼요. 중요: 이것은 서드파티 컴포넌트가 예외가 던져졌을 때 Camel에 알릴 수 있도록 허용하는 경우에만 가능해요. 일부 컴포넌트는 내부에서만 처리하기 때문에 bridgeErrorHandler를 쓸 수 없어요. 다른 상황에서는 Camel 컴포넌트를 개선해서 서드파티 컴포넌트에 연결(hook)해 이를 가능하게 만들 수도 있어요. 기본으로 컨슈머는 org.apache.camel.spi.ExceptionHandler로 예외를 처리하는데, WARN 또는 ERROR 레벨로 로그를 남기고 무시해요. | false | boolean |
| lazyStartProducer (producer) | 프로듀서를 느리게(lazy, 첫 메시지가 올 때) 시작할지 여부예요. 느리게 시작하면, 프로듀서가 시작 중에 실패해서 라우트 시작 자체가 실패하는 상황에서도 CamelContext와 라우트를 시작할 수 있어요. 시작을 늦춰 두면 실패가 발생했을 때 메시지를 라우팅하는 동안 Camel의 라우팅 에러 핸들러로 처리할 수 있죠. 단, 첫 메시지를 처리할 때 프로듀서를 만들고 시작하는 데 시간이 조금 걸려서 전체 처리 시간이 길어질 수 있다는 점은 감안하세요. | false | boolean |
| autowiredEnabled (advanced) | 오토와이어링(autowiring)을 활성화할지 여부예요. 레지스트리에서 일치하는 타입의 인스턴스가 딱 하나 있는지 찾아서, 그 인스턴스로 오토와이어링 옵션(옵션이 autowired로 표시되어 있어야 함)을 자동 설정하는 데 쓰여요. JDBC 데이터 소스, JMS 커넥션 팩토리, AWS 클라이언트 등을 자동 설정할 때 사용할 수 있어요. | true | boolean |
| clientFactory (advanced) | 클라이언트 생성 팩토리로 GoogleCalendarClientFactory를 사용해요. 기본으로는 BatchGoogleDriveClientFactory를 써요. | GoogleDriveClientFactory | |
| proxyHost (proxy) | 프록시 서버 호스트예요. | String | |
| proxyPort (proxy) | 프록시 서버 포트예요. | Integer | |
| accessToken (security) | OAuth 2 액세스 토큰이에요. 보통 한 시간쯤 지나면 만료되므로, 오래 쓸 거면 refreshToken을 쓰는 게 좋아요. | String | |
| clientSecret (security) | 드라이브 애플리케이션의 클라이언트 시크릿이에요. | String | |
| refreshToken (security) | OAuth 2 리프레시 토큰이에요. 이걸 쓰면 현재 accessToken이 만료될 때마다 Google Drive 컴포넌트가 새 accessToken을 받아 와요. 애플리케이션이 오래 동작한다면 필수예요. | String | |
| serviceAccountKey (security) | 애플리케이션을 서비스 계정으로 인증할 때 쓰는 JSON 형식의 서비스 계정 키예요. base64: 접두사를 붙이면 base64 값을 받아 들여요. | String |
엔드포인트 옵션 (Endpoint Options)
Google Drive 엔드포인트는 다음 URI 문법으로 설정해요:
google-drive:apiName/methodName
다음 _path_와 query 파라미터를 씁니다:
경로 파라미터 (Path Parameters)
| Name | Description | Default | Type |
|---|---|---|---|
| apiName (common) | |||
| 필수 어떤 종류의 연산을 수행할지 정해요. |
Enum values:
-
DRIVE_ABOUT
-
DRIVE_CHANGES
-
DRIVE_CHANNELS
-
DRIVE_COMMENTS
-
DRIVE_DRIVES
-
DRIVE_FILES
-
DRIVE_PERMISSIONS
-
DRIVE_REPLIES
-
DRIVE_REVISIONS
-
DRIVE_TEAMDRIVES
| | GoogleDriveApiName | | methodName (common) |
필수 선택한 연산에 쓸 하위 연산이에요.
Enum values:
-
copy
-
delete
-
get
-
getIdForEmail
-
insert
-
list
-
patch
-
stop
-
touch
-
trash
-
untrash
-
update
-
watch
| | String |
쿼리 파라미터 (Query Parameters)
| Name | Description | Default | Type |
|---|---|---|---|
| applicationName (common) | Google 드라이브 애플리케이션 이름이에요. 예를 들면 camel-google-drive/1.0 같은 식이에요. | String | |
| clientFactory (common) | 클라이언트 생성 팩토리로 GoogleCalendarClientFactory를 사용해요. 기본으로는 BatchGoogleDriveClientFactory를 써요. | GoogleDriveClientFactory | |
| clientId (common) | 드라이브 애플리케이션의 클라이언트 ID예요. | String | |
| delegate (common) | 도메인 전체 권한을 가진 서비스 계정의 위임자(delegate)예요. | String | |
| inBody (common) | 교환(exchange)의 In Body로 넘길 파라미터 이름을 설정해요. | String | |
| scopes (common) | 캘린더 애플리케이션이 사용자 계정에 대해 갖기를 원하는 권한 수준을 지정해요. 자세한 내용은 https://developers.google.com/identity/protocols/googlescopes를 참고하세요. 스코프가 여러 개면 쉼표로 구분하면 돼요. | String | |
| sendEmptyMessageWhenIdle (consumer) | 폴링 컨슈머가 아무 파일도 가져오지 못했을 때 이 옵션을 켜면 빈 메시지(본문 없음)를 대신 보내 줘요. | false | boolean |
| bridgeErrorHandler (consumer (advanced)) | 컨슈머를 Camel 라우팅 에러 핸들러(Error Handler)에 브리지할 수 있게 해 줘요. 즉, Camel 컨슈머가 들어오는 메시지를 집어 올리는 동안 등에서 예외가 발생하면(가능한 경우), 그 예외를 메시지로 처리해서 라우팅 에러 핸들러가 다루게 돼요. 중요: 이것은 서드파티 컴포넌트가 예외가 던져졌을 때 Camel에 알릴 수 있도록 허용하는 경우에만 가능해요. 일부 컴포넌트는 내부에서만 처리하기 때문에 bridgeErrorHandler를 쓸 수 없어요. 다른 상황에서는 Camel 컴포넌트를 개선해서 서드파티 컴포넌트에 연결(hook)해 이를 가능하게 만들 수도 있어요. 기본으로 컨슈머는 org.apache.camel.spi.ExceptionHandler로 예외를 처리하는데, WARN 또는 ERROR 레벨로 로그를 남기고 무시해요. | false | boolean |
| exceptionHandler (consumer (advanced)) | 컨슈머가 커스텀 ExceptionHandler를 쓰게 할 수 있어요. bridgeErrorHandler 옵션이 활성화되어 있으면 이 옵션은 사용되지 않는다는 점에 주의하세요. 기본으로 컨슈머는 예외를 처리하는데, WARN 또는 ERROR 레벨로 로그를 남기고 무시해요. | ExceptionHandler | |
| exchangePattern (consumer (advanced)) | |||
| 컨슈머가 교환(exchange)을 만들 때 교환 패턴을 설정해요. |
Enum values:
-
InOnly
-
InOut
| | ExchangePattern | | pollStrategy (consumer (advanced)) | 꽂아 쓸 수 있는 org.apache.camel.PollingConsumerPollingStrategy예요. 커스텀 구현을 제공해서, Exchange가 만들어지고 Camel에서 라우팅되기 전에 폴링 동작 중에 주로 발생하는 에러 처리를 제어할 수 있어요. | | PollingConsumerPollStrategy | | lazyStartProducer (producer (advanced)) | 프로듀서를 느리게(lazy, 첫 메시지가 올 때) 시작할지 여부예요. 느리게 시작하면, 프로듀서가 시작 중에 실패해서 라우트 시작 자체가 실패하는 상황에서도 CamelContext와 라우트를 시작할 수 있어요. 시작을 늦춰 두면 실패가 발생했을 때 메시지를 라우팅하는 동안 Camel의 라우팅 에러 핸들러로 처리할 수 있죠. 단, 첫 메시지를 처리할 때 프로듀서를 만들고 시작하는 데 시간이 조금 걸려서 전체 처리 시간이 길어질 수 있다는 점은 감안하세요. | false | boolean | | backoffErrorThreshold (scheduler) | backoffMultipler가 동작하기 전에 연속으로 발생해야 하는 에러 폴링(오류로 실패한 폴링) 횟수예요. | | int | | backoffIdleThreshold (scheduler) | backoffMultipler가 동작하기 전에 연속으로 발생해야 하는 유휴(idle) 폴링 횟수예요. | | int | | backoffMultiplier (scheduler) | 연속으로 유휴/에러 폴링이 이어지면 예약 폴링 컨슈머가 백오프하도록 해요. multiplier 값은 다음 실제 시도 전에 건너뛸 폴링 횟수예요. 이 옵션을 쓸 때는 backoffIdleThreshold와/또는 backoffErrorThreshold도 함께 설정해야 해요. | | int | | delay (scheduler) | 다음 폴링 전에 기다리는 밀리초예요. | 500 | long | | greedy (scheduler) | greedy를 켜면 이전 폴링에서 1개 이상의 메시지를 가져왔을 때 ScheduledPollConsumer가 바로 다시 실행돼요. | false | boolean | | initialDelay (scheduler) | 첫 폴링이 시작되기 전에 기다리는 밀리초예요. | 1000 | long | | repeatCount (scheduler) | 최대 실행 횟수를 지정해요. 1로 두면 스케줄러가 한 번만 실행되고, 5로 두면 다섯 번만 실행해요. 0이나 음수는 계속 실행한다는 뜻이에요. | 0 | long | | runLoggingLevel (scheduler) |
컨슈머가 폴링할 때 시작/완료 로그 한 줄을 남겨요. 이 옵션으로 그 로그의 레벨을 설정할 수 있어요.
Enum values:
-
TRACE
-
DEBUG
-
INFO
-
WARN
-
ERROR
-
OFF
| TRACE | LoggingLevel | | scheduledExecutorService (scheduler) | 컨슈머가 쓸 커스텀/공유 스레드 풀을 설정하게 해 줘요. 기본으로 컨슈머마다 단일 스레드 풀을 하나씩 가져요. | | ScheduledExecutorService | | scheduler (scheduler) | camel-spring이나 camel-quartz 컴포넌트의 cron 스케줄러를 쓸 때 사용해요. 내장 스케줄러로는 spring 또는 quartz 값을 쓰세요. | none | Object | | schedulerProperties (scheduler) | 커스텀 스케줄러나 Quartz·Spring 기반 스케줄러를 쓸 때 추가 프로퍼티를 설정해요. 접두사가 scheduler인 다중 값 옵션이에요. | | Map | | startScheduler (scheduler) | 스케줄러를 자동으로 시작할지 여부예요. | true | boolean | | timeUnit (scheduler) |
initialDelay와 delay 옵션의 시간 단위예요.
Enum values:
-
NANOSECONDS
-
MICROSECONDS
-
MILLISECONDS
-
SECONDS
-
MINUTES
-
HOURS
-
DAYS
| MILLISECONDS | TimeUnit | | useFixedDelay (scheduler) | 고정 지연(fixed delay)을 쓸지 고정 비율(fixed rate)을 쓸지 제어해요. 자세한 내용은 JDK의 ScheduledExecutorService를 보세요. | true | boolean | | accessToken (security) | OAuth 2 액세스 토큰이에요. 보통 한 시간쯤 지나면 만료되므로, 오래 쓸 거면 refreshToken을 쓰는 게 좋아요. | | String | | clientSecret (security) | 드라이브 애플리케이션의 클라이언트 시크릿이에요. | | String | | refreshToken (security) | OAuth 2 리프레시 토큰이에요. 이걸 쓰면 현재 accessToken이 만료될 때마다 Google Drive 컴포넌트가 새 accessToken을 받아 와요. 애플리케이션이 오래 동작한다면 필수예요. | | String | | serviceAccountKey (security) | 애플리케이션을 서비스 계정으로 인증할 때 쓰는 JSON 형식의 서비스 계정 키예요. base64: 접두사를 붙이면 base64 값을 받아 들여요. | | String |
API 파라미터 (9개 API)
Google Drive 엔드포인트는 API 기반 컴포넌트라서 어떤 API 이름과 API 메서드를 쓰느냐에 따라 추가 파라미터가 붙어요. API 이름과 API 메서드는 엔드포인트 URI에서 apiName/methodName 경로 파라미터 자리에 들어가요:
google-drive:apiName/methodName
API 이름은 아래 표와 같이 9개가 있어요:
| API Name | Type | Description |
|---|---|---|
| drive-changes | Both | 변경 사항(changes) 메서드 컬렉션이에요. |
| drive-channels | Both | 채널(channels) 메서드 컬렉션이에요. |
| drive-comments | Both | 댓글(comments) 메서드 컬렉션이에요. |
| drive-drives | Both | 공유 드라이브(drives) 메서드 컬렉션이에요. |
| drive-files | Both | 파일(files) 메서드 컬렉션이에요. |
| drive-permissions | Both | 권한(permissions) 메서드 컬렉션이에요. |
| drive-replies | Both | 답글(replies) 메서드 컬렉션이에요. |
| drive-revisions | Both | 리비전(revisions) 메서드 컬렉션이에요. |
| drive-teamdrives | Both | 팀 드라이브(teamdrives) 메서드 컬렉션이에요. |
각 API는 이어지는 다음 섹션에서 문서화돼 있어요.
API: drive-changes
producer와 consumer 모두 지원
drive-changes API는 다음 문법으로 정의돼요:
google-drive:drive-changes/methodName?[parameters]
3개 메서드가 아래 표에 나열되어 있고, 이어서 각 메서드의 상세 문법을 보여 줘요. (API 메서드는 문법에서 이름 대신 쓸 수 있는 짧은 _별칭_을 가질 수 있어요)
| Method | Alias | Description |
|---|---|---|
| getStartPageToken | 이후 변경 사항을 나열할 때 쓰는 시작 pageToken을 가져와요. | |
| list | 사용자 또는 공유 드라이브의 변경 사항을 나열해요. | |
| watch | 사용자의 변경 사항을 구독해요. |
Method getStartPageToken
시그니처(Signatures):
- com.google.api.services.drive.Drive.Changes.GetStartPageToken getStartPageToken();
google-drive/getStartPageToken API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| driveId | 그 공유 드라이브에서 이후 변경 사항을 나열할 시작 pageToken이 반환될 공유 드라이브의 ID예요. | String |
| supportsAllDrives | 요청하는 애플리케이션이 내 드라이브(My Drives)와 공유 드라이브를 모두 지원하는지 여부예요. | Boolean |
| supportsTeamDrives | Deprecated: 대신 supportsAllDrives를 쓰세요. | Boolean |
| teamDriveId | Deprecated: 대신 driveId를 쓰세요. | String |
Method list
시그니처(Signatures):
- com.google.api.services.drive.Drive.Changes.List list(String pageToken);
google-drive/list API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| driveId | 변경 사항을 돌려 받을 공유 드라이브예요. | String |
| includeCorpusRemovals | 요청 시점에 파일을 사용자가 여전히 접근할 수 있다면, 파일이 변경 목록에서 빠져 더 이상 변경 항목이 생기지 않는 경우에도 파일 리소스를 변경 사항에 포함할지 여부예요. | Boolean |
| includeItemsFromAllDrives | 결과에 내 드라이브와 공유 드라이브 항목을 모두 포함할지 여부예요. | Boolean |
| includeLabels | 응답의 labelInfo 부분에 포함할 라벨 ID의 쉼표 구분 목록이에요. | String |
| includePermissionsForView | 응답에 포함할 추가 뷰(view)의 권한을 지정해요. | String |
| includeRemoved | 삭제나 접근 권한 상실처럼 항목이 변경 목록에서 빠졌음을 알리는 변경 사항도 포함할지 여부예요. | Boolean |
| includeTeamDriveItems | Deprecated: 대신 includeItemsFromAllDrives를 쓰세요. | Boolean |
| pageSize | 페이지당 돌려 받을 변경 사항의 최대 개수예요. | Integer |
| pageToken | 이전 목록 요청을 다음 페이지에서 이어갈 때 쓰는 토큰이에요. 이전 응답의 ‘nextPageToken’ 값이나 getStartPageToken 메서드의 응답 값을 설정해야 해요. | String |
| restrictToMyDrive | 결과를 내 드라이브 계층 안의 변경 사항으로 제한할지 여부예요. | Boolean |
| spaces | 코퍼라(corpus) 안에서 조회할 스페이스의 쉼표 구분 목록이에요. | String |
| supportsAllDrives | 요청하는 애플리케이션이 내 드라이브(My Drives)와 공유 드라이브를 모두 지원하는지 여부예요. | Boolean |
| supportsTeamDrives | Deprecated: 대신 supportsAllDrives를 쓰세요. | Boolean |
| teamDriveId | Deprecated: 대신 driveId를 쓰세요. | String |
Method watch
시그니처(Signatures):
- com.google.api.services.drive.Drive.Changes.Watch watch(String pageToken, com.google.api.services.drive.model.Channel content);
google-drive/watch API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| contentChannel | com.google.api.services.drive.model.Channel이에요. | Channel |
| driveId | 변경 사항을 돌려 받을 공유 드라이브예요. | String |
| includeCorpusRemovals | 요청 시점에 파일을 사용자가 여전히 접근할 수 있다면, 파일이 변경 목록에서 빠져 더 이상 변경 항목이 생기지 않는 경우에도 파일 리소스를 변경 사항에 포함할지 여부예요. | Boolean |
| includeItemsFromAllDrives | 결과에 내 드라이브와 공유 드라이브 항목을 모두 포함할지 여부예요. | Boolean |
| includeLabels | 응답의 labelInfo 부분에 포함할 라벨 ID의 쉼표 구분 목록이에요. | String |
| includePermissionsForView | 응답에 포함할 추가 뷰(view)의 권한을 지정해요. | String |
| includeRemoved | 삭제나 접근 권한 상실처럼 항목이 변경 목록에서 빠졌음을 알리는 변경 사항도 포함할지 여부예요. | Boolean |
| includeTeamDriveItems | Deprecated: 대신 includeItemsFromAllDrives를 쓰세요. | Boolean |
| pageSize | 페이지당 돌려 받을 변경 사항의 최대 개수예요. | Integer |
| pageToken | 이전 목록 요청을 다음 페이지에서 이어갈 때 쓰는 토큰이에요. 이전 응답의 ‘nextPageToken’ 값이나 getStartPageToken 메서드의 응답 값을 설정해야 해요. | String |
| restrictToMyDrive | 결과를 내 드라이브 계층 안의 변경 사항으로 제한할지 여부예요. | Boolean |
| spaces | 코퍼라(corpus) 안에서 조회할 스페이스의 쉼표 구분 목록이에요. | String |
| supportsAllDrives | 요청하는 애플리케이션이 내 드라이브(My Drives)와 공유 드라이브를 모두 지원하는지 여부예요. | Boolean |
| supportsTeamDrives | Deprecated: 대신 supportsAllDrives를 쓰세요. | Boolean |
| teamDriveId | Deprecated: 대신 driveId를 쓰세요. | String |
위 파라미터 외에도 google-drive API는 쿼리 파라미터를 모두 쓸 수 있어요.
파라미터는 엔드포인트 URI에 담거나 메시지 헤더로 동적으로 줄 수도 있어요. 메시지 헤더 이름은 CamelGoogleDrive.parameter 형식이어야 해요. inBody 파라미터는 메시지 헤더를 덮어써요. 즉 엔드포인트 파라미터 inBody=myParameterNameHere가 CamelGoogleDrive.myParameterNameHere 헤더를 이기는 거죠.
API: drive-channels
producer와 consumer 모두 지원
drive-channels API는 다음 문법으로 정의돼요:
google-drive:drive-channels/methodName?[parameters]
1개 메서드가 아래 표에 나열되어 있고, 이어서 각 메서드의 상세 문법을 보여 줘요. (API 메서드는 문법에서 이름 대신 쓸 수 있는 짧은 _별칭_을 가질 수 있어요)
| Method | Alias | Description |
|---|---|---|
| stop | 이 채널을 통한 리소스 감시를 중단해요. |
Method stop
시그니처(Signatures):
- com.google.api.services.drive.Drive.Channels.Stop stop(com.google.api.services.drive.model.Channel content);
google-drive/stop API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| contentChannel | com.google.api.services.drive.model.Channel이에요. | Channel |
위 파라미터 외에도 google-drive API는 쿼리 파라미터를 모두 쓸 수 있어요.
파라미터는 엔드포인트 URI에 담거나 메시지 헤더로 동적으로 줄 수도 있어요. 메시지 헤더 이름은 CamelGoogleDrive.parameter 형식이어야 해요. inBody 파라미터는 메시지 헤더를 덮어써요. 즉 엔드포인트 파라미터 inBody=myParameterNameHere가 CamelGoogleDrive.myParameterNameHere 헤더를 이기는 거죠.
API: drive-comments
producer와 consumer 모두 지원
drive-comments API는 다음 문법으로 정의돼요:
google-drive:drive-comments/methodName?[parameters]
5개 메서드가 아래 표에 나열되어 있고, 이어서 각 메서드의 상세 문법을 보여 줘요. (API 메서드는 문법에서 이름 대신 쓸 수 있는 짧은 _별칭_을 가질 수 있어요)
| Method | Alias | Description |
|---|---|---|
| create | 파일에 댓글을 만들어요. | |
| delete | 댓글을 삭제해요. | |
| get | ID로 댓글을 가져와요. | |
| list | 파일의 댓글을 나열해요. | |
| update | patch 의미론으로 댓글을 갱신해요. |
Method create
시그니처(Signatures):
- com.google.api.services.drive.Drive.Comments.Create create(String fileId, com.google.api.services.drive.model.Comment content);
google-drive/create API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| content | com.google.api.services.drive.model.Comment예요. | Comment |
| fileId | 파일의 ID예요. | String |
Method delete
시그니처(Signatures):
- com.google.api.services.drive.Drive.Comments.Delete delete(String fileId, String commentId);
google-drive/delete API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| commentId | 댓글의 ID예요. | String |
| fileId | 파일의 ID예요. | String |
Method get
시그니처(Signatures):
- com.google.api.services.drive.Drive.Comments.Get get(String fileId, String commentId);
google-drive/get API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| commentId | 댓글의 ID예요. | String |
| fileId | 파일의 ID예요. | String |
| includeDeleted | 삭제된 댓글도 돌려 받을지 여부예요. | Boolean |
Method list
시그니처(Signatures):
- com.google.api.services.drive.Drive.Comments.List list(String fileId);
google-drive/list API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| fileId | 파일의 ID예요. | String |
| includeDeleted | 삭제된 댓글도 포함할지 여부예요. | Boolean |
| pageSize | 페이지당 돌려 받을 댓글의 최대 개수예요. | Integer |
| pageToken | 이전 목록 요청을 다음 페이지에서 이어갈 때 쓰는 토큰이에요. | String |
| startModifiedTime | 결과 댓글의 ‘modifiedTime’ 최솟값이에요(RFC 3339 날짜-시간). | String |
Method update
시그니처(Signatures):
- com.google.api.services.drive.Drive.Comments.Update update(String fileId, String commentId, com.google.api.services.drive.model.Comment content);
google-drive/update API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| commentId | 댓글의 ID예요. | String |
| content | com.google.api.services.drive.model.Comment예요. | Comment |
| fileId | 파일의 ID예요. | String |
위 파라미터 외에도 google-drive API는 쿼리 파라미터를 모두 쓸 수 있어요.
파라미터는 엔드포인트 URI에 담거나 메시지 헤더로 동적으로 줄 수도 있어요. 메시지 헤더 이름은 CamelGoogleDrive.parameter 형식이어야 해요. inBody 파라미터는 메시지 헤더를 덮어써요. 즉 엔드포인트 파라미터 inBody=myParameterNameHere가 CamelGoogleDrive.myParameterNameHere 헤더를 이기는 거죠.
API: drive-drives
producer와 consumer 모두 지원
drive-drives API는 다음 문법으로 정의돼요:
google-drive:drive-drives/methodName?[parameters]
7개 메서드가 아래 표에 나열되어 있고, 이어서 각 메서드의 상세 문법을 보여 줘요. (API 메서드는 문법에서 이름 대신 쓸 수 있는 짧은 _별칭_을 가질 수 있어요)
| Method | Alias | Description |
|---|---|---|
| create | 공유 드라이브를 만들어요. | |
| delete | 사용자가 오거나이저(organizer)인 공유 드라이브를 영구 삭제해요. | |
| get | ID로 공유 드라이브의 메타데이터를 가져와요. | |
| hide | 공유 드라이브를 기본 뷰에서 숨겨요. | |
| list | 사용자의 공유 드라이브를 나열해요. | |
| unhide | 공유 드라이브를 기본 뷰로 되돌려요. | |
| update | 공유 드라이브의 메타데이터를 갱신해요. |
Method create
시그니처(Signatures):
- com.google.api.services.drive.Drive.Drives.Create create(String requestId, com.google.api.services.drive.model.Drive content);
google-drive/create API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| content | com.google.api.services.drive.model.Drive예요. | Drive |
| requestId | 필수. 이 사용자의 요청이 멱등하게 공유 드라이브를 만들도록 고유하게 식별하는 ID예요. 무작위 UUID 같은 값이면 충분해요. 같은 사용자가 같은 요청 ID로 다시 요청하면 같은 공유 드라이브를 만들려고 시도해서 중복 생성을 피할 수 있어요. 공유 드라이브가 이미 있으면 409 에러를 돌려 줘요. | String |
Method delete
시그니처(Signatures):
- com.google.api.services.drive.Drive.Drives.Delete delete(String driveId);
google-drive/delete API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| allowItemDeletion | 공유 드라이브 안의 항목들도 함께 삭제할지 여부예요. | Boolean |
| driveId | 공유 드라이브의 ID예요. | String |
| useDomainAdminAccess | 도메인 관리자로 요청을 보낼지예요. true면, 요청자가 해당 공유 드라이브가 속한 도메인의 관리자일 때 접근이 허용돼요. | Boolean |
Method get
시그니처(Signatures):
- com.google.api.services.drive.Drive.Drives.Get get(String driveId);
google-drive/get API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| driveId | 공유 드라이브의 ID예요. | String |
| useDomainAdminAccess | 도메인 관리자로 요청을 보낼지예요. true면, 요청자가 해당 공유 드라이브가 속한 도메인의 관리자일 때 접근이 허용돼요. | Boolean |
Method hide
시그니처(Signatures):
- com.google.api.services.drive.Drive.Drives.Hide hide(String driveId);
google-drive/hide API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| driveId | 공유 드라이브의 ID예요. | String |
Method list
시그니처(Signatures):
- com.google.api.services.drive.Drive.Drives.List list();
google-drive/list API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| pageSize | 페이지당 돌려 받을 공유 드라이브의 최대 개수예요. | Integer |
| pageToken | 공유 드라이브의 페이지 토큰이에요. | String |
| q | 공유 드라이브를 검색할 쿼리 문자열이에요. | String |
| useDomainAdminAccess | 도메인 관리자로 요청을 보낼지예요. true면, 요청자가 관리자인 도메인의 모든 공유 드라이브가 돌아와요. | Boolean |
Method unhide
시그니처(Signatures):
- com.google.api.services.drive.Drive.Drives.Unhide unhide(String driveId);
google-drive/unhide API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| driveId | 공유 드라이브의 ID예요. | String |
Method update
시그니처(Signatures):
- com.google.api.services.drive.Drive.Drives.Update update(String driveId, com.google.api.services.drive.model.Drive content);
google-drive/update API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| content | com.google.api.services.drive.model.Drive예요. | Drive |
| driveId | 공유 드라이브의 ID예요. | String |
| useDomainAdminAccess | 도메인 관리자로 요청을 보낼지예요. true면, 요청자가 해당 공유 드라이브가 속한 도메인의 관리자일 때 접근이 허용돼요. | Boolean |
위 파라미터 외에도 google-drive API는 쿼리 파라미터를 모두 쓸 수 있어요.
파라미터는 엔드포인트 URI에 담거나 메시지 헤더로 동적으로 줄 수도 있어요. 메시지 헤더 이름은 CamelGoogleDrive.parameter 형식이어야 해요. inBody 파라미터는 메시지 헤더를 덮어써요. 즉 엔드포인트 파라미터 inBody=myParameterNameHere가 CamelGoogleDrive.myParameterNameHere 헤더를 이기는 거죠.
API: drive-files
producer와 consumer 모두 지원
drive-files API는 다음 문법으로 정의돼요:
google-drive:drive-files/methodName?[parameters]
13개 메서드가 아래 표에 나열되어 있고, 이어서 각 메서드의 상세 문법을 보여 줘요. (API 메서드는 문법에서 이름 대신 쓸 수 있는 짧은 _별칭_을 가질 수 있어요)
| Method | Alias | Description |
|---|---|---|
| copy | 파일 사본을 만들고, 요청된 갱신을 patch 의미론으로 적용해요. | |
| create | 파일을 만들어요. | |
| delete | 사용자가 소유한 파일을 휴지통으로 보내지 않고 영구 삭제해요. | |
| download | 파일 내용을 내려받아요. | |
| emptyTrash | 사용자가 휴지통에 버린 파일을 모두 영구 삭제해요. | |
| export | Google Workspace 문서를 요청한 MIME 타입으로 내보내고, 내보낸 바이트 내용을 돌려 줘요. | |
| generateIds | create나 copy 요청에 쓸 수 있는 파일 ID 묶음을 생성해요. | |
| get | ID로 파일의 메타데이터나 내용을 가져와요. | |
| list | 사용자의 파일을 나열해요. | |
| listLabels | 파일에 붙은 라벨을 나열해요. | |
| modifyLabels | 파일에 적용된 라벨 집합을 수정해요. | |
| update | 파일의 메타데이터, 내용, 또는 둘 다를 갱신해요. | |
| watch | 파일 변경 사항을 구독해요. |
Method copy
시그니처(Signatures):
- com.google.api.services.drive.Drive.Files.Copy copy(String fileId, com.google.api.services.drive.model.File content);
google-drive/copy API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| enforceSingleParent | Deprecated: 파일을 여러 폴더로 복사하는 기능은 더 이상 지원되지 않아요. | Boolean |
| file | com.google.api.services.drive.model.File예요. | File |
| fileId | 파일의 ID예요. | String |
| ignoreDefaultVisibility | 만들어지는 파일에 도메인의 기본 표시 여부 설정을 무시할지 여부예요. | Boolean |
| includeLabels | 응답의 labelInfo 부분에 포함할 라벨 ID의 쉼표 구분 목록이에요. | String |
| includePermissionsForView | 응답에 포함할 추가 뷰(view)의 권한을 지정해요. | String |
| keepRevisionForever | 새 head 리비전에서 keepForever 필드를 설정할지 여부예요. | Boolean |
| ocrLanguage | 이미지 가져오기(import) 중 OCR 처리에 쓰는 언어 힌트예요(ISO 639-1 코드). | String |
| supportsAllDrives | 요청하는 애플리케이션이 내 드라이브(My Drives)와 공유 드라이브를 모두 지원하는지 여부예요. | Boolean |
| supportsTeamDrives | Deprecated: 대신 supportsAllDrives를 쓰세요. | Boolean |
Method create
시그니처(Signatures):
-
com.google.api.services.drive.Drive.Files.Create create(com.google.api.services.drive.model.File content);
-
com.google.api.services.drive.Drive.Files.Create create(com.google.api.services.drive.model.File content, com.google.api.client.http.AbstractInputStreamContent mediaContent);
google-drive/create API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| content | com.google.api.services.drive.model.File 미디어 메타데이터예요. 없으면 null이에요. | File |
| enforceSingleParent | Deprecated: 파일을 여러 폴더에 만드는 기능은 더 이상 지원되지 않아요. | Boolean |
| ignoreDefaultVisibility | 만들어지는 파일에 도메인의 기본 표시 여부 설정을 무시할지 여부예요. | Boolean |
| includeLabels | 응답의 labelInfo 부분에 포함할 라벨 ID의 쉼표 구분 목록이에요. | String |
| includePermissionsForView | 응답에 포함할 추가 뷰(view)의 권한을 지정해요. | String |
| keepRevisionForever | 새 head 리비전에서 keepForever 필드를 설정할지 여부예요. | Boolean |
| mediaContent | 미디어 HTTP 콘텐츠예요. | AbstractInputStreamContent |
| ocrLanguage | 이미지 가져오기(import) 중 OCR 처리에 쓰는 언어 힌트예요(ISO 639-1 코드). | String |
| supportsAllDrives | 요청하는 애플리케이션이 내 드라이브(My Drives)와 공유 드라이브를 모두 지원하는지 여부예요. | Boolean |
| supportsTeamDrives | Deprecated: 대신 supportsAllDrives를 쓰세요. | Boolean |
| useContentAsIndexableText | 업로드한 내용을 색인 가능한 텍스트로 쓸지 여부예요. | Boolean |
Method delete
시그니처(Signatures):
- com.google.api.services.drive.Drive.Files.Delete delete(String fileId);
google-drive/delete API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| enforceSingleParent | Deprecated: 항목이 공유 드라이브에 있지 않은데 마지막 부모가 삭제되고 항목 자체는 남으면, 항목이 소유자의 루트 아래로 옮겨져요. | Boolean |
| fileId | 파일의 ID예요. | String |
| supportsAllDrives | 요청하는 애플리케이션이 내 드라이브(My Drives)와 공유 드라이브를 모두 지원하는지 여부예요. | Boolean |
| supportsTeamDrives | Deprecated: 대신 supportsAllDrives를 쓰세요. | Boolean |
Method download
시그니처(Signatures):
- com.google.api.services.drive.Drive.Files.Download download(String fileId);
google-drive/download API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| fileId | 필수. 내려받을 파일의 ID예요. | String |
| mimeType | 선택 사항이에요. | String |
| revisionId | 선택 사항이에요. | String |
Method emptyTrash
시그니처(Signatures):
- com.google.api.services.drive.Drive.Files.EmptyTrash emptyTrash();
google-drive/emptyTrash API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| driveId | 설정하면 지정한 공유 드라이브의 휴지통을 비워요. | String |
| enforceSingleParent | Deprecated: 항목이 공유 드라이브에 있지 않은데 마지막 부모가 삭제되고 항목 자체는 남으면, 항목이 소유자의 루트 아래로 옮겨져요. | Boolean |
Method export
시그니처(Signatures):
- com.google.api.services.drive.Drive.Files.Export export(String fileId, String mimeType);
google-drive/export API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| fileId | 파일의 ID예요. | String |
| mimeType | 필수. 이 내보내기에서 요청하는 형식의 MIME 타입이에요. 지원되는 MIME 타입 목록은 Google Workspace 문서의 내보내기 MIME 타입(/workspace/drive/api/guides/ref- export-formats)을 참고하세요. | String |
Method generateIds
시그니처(Signatures):
- com.google.api.services.drive.Drive.Files.GenerateIds generateIds();
google-drive/generateIds API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| count | 돌려 받을 ID의 개수예요. | Integer |
| space | 발급된 ID로 파일을 만들 수 있는 스페이스예요. | String |
| type | ID를 쓸 수 있는 항목의 타입이에요. | String |
Method get
시그니처(Signatures):
- com.google.api.services.drive.Drive.Files.Get get(String fileId);
google-drive/get API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| acknowledgeAbuse | 알려진 멀웨어나 악성 파일을 내려받는 위험을 사용자가 인지했는지 여부예요. | Boolean |
| fileId | 파일의 ID예요. | String |
| includeLabels | 응답의 labelInfo 부분에 포함할 라벨 ID의 쉼표 구분 목록이에요. | String |
| includePermissionsForView | 응답에 포함할 추가 뷰(view)의 권한을 지정해요. | String |
| supportsAllDrives | 요청하는 애플리케이션이 내 드라이브(My Drives)와 공유 드라이브를 모두 지원하는지 여부예요. | Boolean |
| supportsTeamDrives | Deprecated: 대신 supportsAllDrives를 쓰세요. | Boolean |
Method list
시그니처(Signatures):
- com.google.api.services.drive.Drive.Files.List list();
google-drive/list API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| corpora | 쿼리가 적용될 항목(파일 또는 문서)의 모음이에요. | String |
| corpus | Deprecated: 나열할 파일의 출처예요. | String |
| driveId | 검색할 공유 드라이브의 ID예요. | String |
| includeItemsFromAllDrives | 결과에 내 드라이브와 공유 드라이브 항목을 모두 포함할지 여부예요. | Boolean |
| includeLabels | 응답의 labelInfo 부분에 포함할 라벨 ID의 쉼표 구분 목록이에요. | String |
| includePermissionsForView | 응답에 포함할 추가 뷰(view)의 권한을 지정해요. | String |
| includeTeamDriveItems | Deprecated: 대신 includeItemsFromAllDrives를 쓰세요. | Boolean |
| orderBy | 정렬 키의 쉼표 구분 목록이에요. | String |
| pageSize | 페이지당 돌려 받을 파일의 최대 개수예요. | Integer |
| pageToken | 이전 목록 요청을 다음 페이지에서 이어갈 때 쓰는 토큰이에요. | String |
| q | 파일 결과를 걸러 내는 쿼리예요. | String |
| spaces | 코퍼라(corpus) 안에서 조회할 스페이스의 쉼표 구분 목록이에요. | String |
| supportsAllDrives | 요청하는 애플리케이션이 내 드라이브(My Drives)와 공유 드라이브를 모두 지원하는지 여부예요. | Boolean |
| supportsTeamDrives | Deprecated: 대신 supportsAllDrives를 쓰세요. | Boolean |
| teamDriveId | Deprecated: 대신 driveId를 쓰세요. | String |
Method listLabels
시그니처(Signatures):
- com.google.api.services.drive.Drive.Files.ListLabels listLabels(String fileId);
google-drive/listLabels API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| fileId | 파일의 ID예요. | String |
| maxResults | 페이지당 돌려 받을 라벨의 최대 개수예요. | Integer |
| pageToken | 이전 목록 요청을 다음 페이지에서 이어갈 때 쓰는 토큰이에요. | String |
Method modifyLabels
시그니처(Signatures):
- com.google.api.services.drive.Drive.Files.ModifyLabels modifyLabels(String fileId, com.google.api.services.drive.model.ModifyLabelsRequest content);
google-drive/modifyLabels API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| fileId | 라벨이 속한 파일의 ID예요. | String |
| modifyLabelsRequest | com.google.api.services.drive.model.ModifyLabelsRequest예요. | ModifyLabelsRequest |
Method update
시그니처(Signatures):
-
com.google.api.services.drive.Drive.Files.Update update(String fileId, com.google.api.services.drive.model.File content);
-
com.google.api.services.drive.Drive.Files.Update update(String fileId, com.google.api.services.drive.model.File content, com.google.api.client.http.AbstractInputStreamContent mediaContent);
google-drive/update API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| addParents | 추가할 부모 ID의 쉼표 구분 목록이에요. | String |
| enforceSingleParent | Deprecated: 파일을 여러 폴더에 추가하는 기능은 더 이상 지원되지 않아요. | Boolean |
| file | com.google.api.services.drive.model.File 미디어 메타데이터예요. 없으면 null이에요. | File |
| fileId | 파일의 ID예요. | String |
| includeLabels | 응답의 labelInfo 부분에 포함할 라벨 ID의 쉼표 구분 목록이에요. | String |
| includePermissionsForView | 응답에 포함할 추가 뷰(view)의 권한을 지정해요. | String |
| keepRevisionForever | 새 head 리비전에서 keepForever 필드를 설정할지 여부예요. | Boolean |
| mediaContent | 미디어 HTTP 콘텐츠예요. | AbstractInputStreamContent |
| ocrLanguage | 이미지 가져오기(import) 중 OCR 처리에 쓰는 언어 힌트예요(ISO 639-1 코드). | String |
| removeParents | 제거할 부모 ID의 쉼표 구분 목록이에요. | String |
| supportsAllDrives | 요청하는 애플리케이션이 내 드라이브(My Drives)와 공유 드라이브를 모두 지원하는지 여부예요. | Boolean |
| supportsTeamDrives | Deprecated: 대신 supportsAllDrives를 쓰세요. | Boolean |
| useContentAsIndexableText | 업로드한 내용을 색인 가능한 텍스트로 쓸지 여부예요. | Boolean |
Method watch
시그니처(Signatures):
- com.google.api.services.drive.Drive.Files.Watch watch(String fileId, com.google.api.services.drive.model.Channel content);
google-drive/watch API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| acknowledgeAbuse | 알려진 멀웨어나 악성 파일을 내려받는 위험을 사용자가 인지했는지 여부예요. | Boolean |
| channel | com.google.api.services.drive.model.Channel이에요. | Channel |
| fileId | 파일의 ID예요. | String |
| includeLabels | 응답의 labelInfo 부분에 포함할 라벨 ID의 쉼표 구분 목록이에요. | String |
| includePermissionsForView | 응답에 포함할 추가 뷰(view)의 권한을 지정해요. | String |
| supportsAllDrives | 요청하는 애플리케이션이 내 드라이브(My Drives)와 공유 드라이브를 모두 지원하는지 여부예요. | Boolean |
| supportsTeamDrives | Deprecated: 대신 supportsAllDrives를 쓰세요. | Boolean |
위 파라미터 외에도 google-drive API는 쿼리 파라미터를 모두 쓸 수 있어요.
파라미터는 엔드포인트 URI에 담거나 메시지 헤더로 동적으로 줄 수도 있어요. 메시지 헤더 이름은 CamelGoogleDrive.parameter 형식이어야 해요. inBody 파라미터는 메시지 헤더를 덮어써요. 즉 엔드포인트 파라미터 inBody=myParameterNameHere가 CamelGoogleDrive.myParameterNameHere 헤더를 이기는 거죠.
API: drive-permissions
producer와 consumer 모두 지원
drive-permissions API는 다음 문법으로 정의돼요:
google-drive:drive-permissions/methodName?[parameters]
5개 메서드가 아래 표에 나열되어 있고, 이어서 각 메서드의 상세 문법을 보여 줘요. (API 메서드는 문법에서 이름 대신 쓸 수 있는 짧은 _별칭_을 가질 수 있어요)
| Method | Alias | Description |
|---|---|---|
| create | 파일이나 공유 드라이브에 권한을 만들어요. | |
| delete | 권한을 삭제해요. | |
| get | ID로 권한을 가져와요. | |
| list | 파일 또는 공유 드라이브의 권한을 나열해요. | |
| update | patch 의미론으로 권한을 갱신해요. |
Method create
시그니처(Signatures):
- com.google.api.services.drive.Drive.Permissions.Create create(String fileId, com.google.api.services.drive.model.Permission content);
google-drive/create API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| content | com.google.api.services.drive.model.Permission예요. | Permission |
| emailMessage | 알림 이메일에 담을 일반 텍스트 커스텀 메시지예요. | String |
| enforceExpansiveAccess | 요청에 확장적 접근 규칙(expansive access rules)을 적용할지 여부예요. | Boolean |
| enforceSingleParent | Deprecated: 자세한 내용은 moveToNewOwnersRoot를 참고하세요. | Boolean |
| fileId | 파일 또는 공유 드라이브의 ID예요. | String |
| moveToNewOwnersRoot | 이 파라미터는 항목이 공유 드라이브에 없고 요청이 항목 소유권 이전을 시도할 때만 효과가 있어요. | Boolean |
| sendNotificationEmail | 사용자나 그룹에 공유할 때 알림 이메일을 보낼지 여부예요. | Boolean |
| supportsAllDrives | 요청하는 애플리케이션이 내 드라이브(My Drives)와 공유 드라이브를 모두 지원하는지 여부예요. | Boolean |
| supportsTeamDrives | Deprecated: 대신 supportsAllDrives를 쓰세요. | Boolean |
| transferOwnership | 소유권을 지정한 사용자에게 넘기고 현재 소유자를 작성자(writer)로 격하할지 여부예요. | Boolean |
| useDomainAdminAccess | 도메인 관리자로 요청을 보낼지예요. | Boolean |
Method delete
시그니처(Signatures):
- com.google.api.services.drive.Drive.Permissions.Delete delete(String fileId, String permissionId);
google-drive/delete API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| enforceExpansiveAccess | 요청에 확장적 접근 규칙(expansive access rules)을 적용할지 여부예요. | Boolean |
| fileId | 파일 또는 공유 드라이브의 ID예요. | String |
| permissionId | 권한의 ID예요. | String |
| supportsAllDrives | 요청하는 애플리케이션이 내 드라이브(My Drives)와 공유 드라이브를 모두 지원하는지 여부예요. | Boolean |
| supportsTeamDrives | Deprecated: 대신 supportsAllDrives를 쓰세요. | Boolean |
| useDomainAdminAccess | 도메인 관리자로 요청을 보낼지예요. | Boolean |
Method get
시그니처(Signatures):
- com.google.api.services.drive.Drive.Permissions.Get get(String fileId, String permissionId);
google-drive/get API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| fileId | 파일의 ID예요. | String |
| permissionId | 권한의 ID예요. | String |
| supportsAllDrives | 요청하는 애플리케이션이 내 드라이브(My Drives)와 공유 드라이브를 모두 지원하는지 여부예요. | Boolean |
| supportsTeamDrives | Deprecated: 대신 supportsAllDrives를 쓰세요. | Boolean |
| useDomainAdminAccess | 도메인 관리자로 요청을 보낼지예요. | Boolean |
Method list
시그니처(Signatures):
- com.google.api.services.drive.Drive.Permissions.List list(String fileId);
google-drive/list API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| fileId | 파일 또는 공유 드라이브의 ID예요. | String |
| includePermissionsForView | 응답에 포함할 추가 뷰(view)의 권한을 지정해요. | String |
| pageSize | 페이지당 돌려 받을 권한의 최대 개수예요. | Integer |
| pageToken | 이전 목록 요청을 다음 페이지에서 이어갈 때 쓰는 토큰이에요. | String |
| supportsAllDrives | 요청하는 애플리케이션이 내 드라이브(My Drives)와 공유 드라이브를 모두 지원하는지 여부예요. | Boolean |
| supportsTeamDrives | Deprecated: 대신 supportsAllDrives를 쓰세요. | Boolean |
| useDomainAdminAccess | 도메인 관리자로 요청을 보낼지예요. | Boolean |
Method update
시그니처(Signatures):
- com.google.api.services.drive.Drive.Permissions.Update update(String fileId, String permissionId, com.google.api.services.drive.model.Permission content);
google-drive/update API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| content | com.google.api.services.drive.model.Permission예요. | Permission |
| enforceExpansiveAccess | 요청에 확장적 접근 규칙(expansive access rules)을 적용할지 여부예요. | Boolean |
| fileId | 파일 또는 공유 드라이브의 ID예요. | String |
| permissionId | 권한의 ID예요. | String |
| removeExpiration | 만료일을 제거할지 여부예요. | Boolean |
| supportsAllDrives | 요청하는 애플리케이션이 내 드라이브(My Drives)와 공유 드라이브를 모두 지원하는지 여부예요. | Boolean |
| supportsTeamDrives | Deprecated: 대신 supportsAllDrives를 쓰세요. | Boolean |
| transferOwnership | 소유권을 지정한 사용자에게 넘기고 현재 소유자를 작성자(writer)로 격하할지 여부예요. | Boolean |
| useDomainAdminAccess | 도메인 관리자로 요청을 보낼지예요. | Boolean |
위 파라미터 외에도 google-drive API는 쿼리 파라미터를 모두 쓸 수 있어요.
파라미터는 엔드포인트 URI에 담거나 메시지 헤더로 동적으로 줄 수도 있어요. 메시지 헤더 이름은 CamelGoogleDrive.parameter 형식이어야 해요. inBody 파라미터는 메시지 헤더를 덮어써요. 즉 엔드포인트 파라미터 inBody=myParameterNameHere가 CamelGoogleDrive.myParameterNameHere 헤더를 이기는 거죠.
API: drive-replies
producer와 consumer 모두 지원
drive-replies API는 다음 문법으로 정의돼요:
google-drive:drive-replies/methodName?[parameters]
5개 메서드가 아래 표에 나열되어 있고, 이어서 각 메서드의 상세 문법을 보여 줘요. (API 메서드는 문법에서 이름 대신 쓸 수 있는 짧은 _별칭_을 가질 수 있어요)
| Method | Alias | Description |
|---|---|---|
| create | 댓글에 답글을 만들어요. | |
| delete | 답글을 삭제해요. | |
| get | ID로 답글을 가져와요. | |
| list | 댓글의 답글을 나열해요. | |
| update | patch 의미론으로 답글을 갱신해요. |
Method create
시그니처(Signatures):
- com.google.api.services.drive.Drive.Replies.Create create(String fileId, String commentId, com.google.api.services.drive.model.Reply content);
google-drive/create API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| commentId | 댓글의 ID예요. | String |
| content | com.google.api.services.drive.model.Reply예요. | Reply |
| fileId | 파일의 ID예요. | String |
Method delete
시그니처(Signatures):
- com.google.api.services.drive.Drive.Replies.Delete delete(String fileId, String commentId, String replyId);
google-drive/delete API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| commentId | 댓글의 ID예요. | String |
| fileId | 파일의 ID예요. | String |
| replyId | 답글의 ID예요. | String |
Method get
시그니처(Signatures):
- com.google.api.services.drive.Drive.Replies.Get get(String fileId, String commentId, String replyId);
google-drive/get API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| commentId | 댓글의 ID예요. | String |
| fileId | 파일의 ID예요. | String |
| includeDeleted | 삭제된 답글도 돌려 받을지 여부예요. | Boolean |
| replyId | 답글의 ID예요. | String |
Method list
시그니처(Signatures):
- com.google.api.services.drive.Drive.Replies.List list(String fileId, String commentId);
google-drive/list API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| commentId | 댓글의 ID예요. | String |
| fileId | 파일의 ID예요. | String |
| includeDeleted | 삭제된 답글도 포함할지 여부예요. | Boolean |
| pageSize | 페이지당 돌려 받을 답글의 최대 개수예요. | Integer |
| pageToken | 이전 목록 요청을 다음 페이지에서 이어갈 때 쓰는 토큰이에요. | String |
Method update
시그니처(Signatures):
- com.google.api.services.drive.Drive.Replies.Update update(String fileId, String commentId, String replyId, com.google.api.services.drive.model.Reply content);
google-drive/update API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| commentId | 댓글의 ID예요. | String |
| content | com.google.api.services.drive.model.Reply예요. | Reply |
| fileId | 파일의 ID예요. | String |
| replyId | 답글의 ID예요. | String |
위 파라미터 외에도 google-drive API는 쿼리 파라미터를 모두 쓸 수 있어요.
파라미터는 엔드포인트 URI에 담거나 메시지 헤더로 동적으로 줄 수도 있어요. 메시지 헤더 이름은 CamelGoogleDrive.parameter 형식이어야 해요. inBody 파라미터는 메시지 헤더를 덮어써요. 즉 엔드포인트 파라미터 inBody=myParameterNameHere가 CamelGoogleDrive.myParameterNameHere 헤더를 이기는 거죠.
API: drive-revisions
producer와 consumer 모두 지원
drive-revisions API는 다음 문법으로 정의돼요:
google-drive:drive-revisions/methodName?[parameters]
4개 메서드가 아래 표에 나열되어 있고, 이어서 각 메서드의 상세 문법을 보여 줘요. (API 메서드는 문법에서 이름 대신 쓸 수 있는 짧은 _별칭_을 가질 수 있어요)
| Method | Alias | Description |
|---|---|---|
| delete | 파일 버전을 영구 삭제해요. | |
| get | ID로 리비전의 메타데이터나 내용을 가져와요. | |
| list | 파일의 리비전을 나열해요. | |
| update | patch 의미론으로 리비전을 갱신해요. |
Method delete
시그니처(Signatures):
- com.google.api.services.drive.Drive.Revisions.Delete delete(String fileId, String revisionId);
google-drive/delete API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| fileId | 파일의 ID예요. | String |
| revisionId | 리비전의 ID예요. | String |
Method get
시그니처(Signatures):
- com.google.api.services.drive.Drive.Revisions.Get get(String fileId, String revisionId);
google-drive/get API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| acknowledgeAbuse | 알려진 멀웨어나 악성 파일을 내려받는 위험을 사용자가 인지했는지 여부예요. | Boolean |
| fileId | 파일의 ID예요. | String |
| revisionId | 리비전의 ID예요. | String |
Method list
시그니처(Signatures):
- com.google.api.services.drive.Drive.Revisions.List list(String fileId);
google-drive/list API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| fileId | 파일의 ID예요. | String |
| pageSize | 페이지당 돌려 받을 리비전의 최대 개수예요. | Integer |
| pageToken | 이전 목록 요청을 다음 페이지에서 이어갈 때 쓰는 토큰이에요. | String |
Method update
시그니처(Signatures):
- com.google.api.services.drive.Drive.Revisions.Update update(String fileId, String revisionId, com.google.api.services.drive.model.Revision content);
google-drive/update API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| content | com.google.api.services.drive.model.Revision예요. | Revision |
| fileId | 파일의 ID예요. | String |
| revisionId | 리비전의 ID예요. | String |
위 파라미터 외에도 google-drive API는 쿼리 파라미터를 모두 쓸 수 있어요.
파라미터는 엔드포인트 URI에 담거나 메시지 헤더로 동적으로 줄 수도 있어요. 메시지 헤더 이름은 CamelGoogleDrive.parameter 형식이어야 해요. inBody 파라미터는 메시지 헤더를 덮어써요. 즉 엔드포인트 파라미터 inBody=myParameterNameHere가 CamelGoogleDrive.myParameterNameHere 헤더를 이기는 거죠.
API: drive-teamdrives
producer와 consumer 모두 지원
drive-teamdrives API는 다음 문법으로 정의돼요:
google-drive:drive-teamdrives/methodName?[parameters]
5개 메서드가 아래 표에 나열되어 있고, 이어서 각 메서드의 상세 문법을 보여 줘요. (API 메서드는 문법에서 이름 대신 쓸 수 있는 짧은 _별칭_을 가질 수 있어요)
| Method | Alias | Description |
|---|---|---|
| create | Deprecated: drives를 쓰세요. | |
| delete | Deprecated: drives를 쓰세요. | |
| get | Deprecated: drives를 쓰세요. | |
| list | Deprecated: drives를 쓰세요. | |
| update | Deprecated: drives를 쓰세요. |
Method create
시그니처(Signatures):
- com.google.api.services.drive.Drive.Teamdrives.Create create(String requestId, com.google.api.services.drive.model.TeamDrive content);
google-drive/create API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| content | com.google.api.services.drive.model.TeamDrive예요. | TeamDrive |
| requestId | 필수. 이 사용자의 요청이 멱등하게 팀 드라이브를 만들도록 고유하게 식별하는 ID예요. 무작위 UUID 같은 값이면 충분해요. 같은 사용자가 같은 요청 ID로 다시 요청하면 같은 팀 드라이브를 만들려고 시도해서 중복 생성을 피할 수 있어요. 팀 드라이브가 이미 있으면 409 에러를 돌려 줘요. | String |
Method delete
시그니처(Signatures):
- com.google.api.services.drive.Drive.Teamdrives.Delete delete(String teamDriveId);
google-drive/delete API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| teamDriveId | 팀 드라이브(Team Drive)의 ID예요. | String |
Method get
시그니처(Signatures):
- com.google.api.services.drive.Drive.Teamdrives.Get get(String teamDriveId);
google-drive/get API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| teamDriveId | 팀 드라이브(Team Drive)의 ID예요. | String |
| useDomainAdminAccess | 도메인 관리자로 요청을 보낼지예요. true면, 요청자가 해당 팀 드라이브가 속한 도메인의 관리자일 때 접근이 허용돼요. | Boolean |
Method list
시그니처(Signatures):
- com.google.api.services.drive.Drive.Teamdrives.List list();
google-drive/list API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| pageSize | 돌려 받을 팀 드라이브의 최대 개수예요. | Integer |
| pageToken | 팀 드라이브의 페이지 토큰이에요. | String |
| q | 팀 드라이브를 검색할 쿼리 문자열이에요. | String |
| useDomainAdminAccess | 도메인 관리자로 요청을 보낼지예요. true면, 요청자가 관리자인 도메인의 모든 팀 드라이브가 돌아와요. | Boolean |
Method update
시그니처(Signatures):
- com.google.api.services.drive.Drive.Teamdrives.Update update(String teamDriveId, com.google.api.services.drive.model.TeamDrive content);
google-drive/update API 메서드는 아래 표에 나열된 파라미터를 사용해요:
| Parameter | Description | Type |
|---|---|---|
| content | com.google.api.services.drive.model.TeamDrive예요. | TeamDrive |
| teamDriveId | 팀 드라이브(Team Drive)의 ID예요. | String |
| useDomainAdminAccess | 도메인 관리자로 요청을 보낼지예요. true면, 요청자가 해당 팀 드라이브가 속한 도메인의 관리자일 때 접근이 허용돼요. | Boolean |
위 파라미터 외에도 google-drive API는 쿼리 파라미터를 모두 쓸 수 있어요.
파라미터는 엔드포인트 URI에 담거나 메시지 헤더로 동적으로 줄 수도 있어요. 메시지 헤더 이름은 CamelGoogleDrive.parameter 형식이어야 해요. inBody 파라미터는 메시지 헤더를 덮어써요. 즉 엔드포인트 파라미터 inBody=myParameterNameHere가 CamelGoogleDrive.myParameterNameHere 헤더를 이기는 거죠.
참고 이 컴포넌트는 API 기반이라서 엔드포인트 옵션 외에도
Camel접두사가 붙은 교환 헤더로 호출별(call) 파라미터를 넘길 수 있어요. 라우트가 신뢰할 수 없는 프로듀서의 메시지를 소비한다면, 메시지가 이 컴포넌트에 닿기 전에 신뢰 경계(trust boundary)에서 이 내부 헤더들을 걷어내세요 — 예를 들어removeHeaders("Camel*")을 쓰면 발신자가 API 호출을 덮어쓸 수 없어요. 자세한 내용은 Camel 보안 모델을 참고하세요.
더 알아보기 (More information)
엔드포인트와 옵션에 대한 자세한 내용은 다음 API 문서를 참고하세요: https://developers.google.com/drive/v2/reference/
더 알아보기 (Learn more)
- Google Drive API v2 레퍼런스 — 엔드포인트와 옵션의 근거가 되는 공식 API 문서예요. drive-files, drive-changes 같은 각 API가 실제로 어떤 동작을 하는지 궁금할 때 참고하세요.
- OAuth 자격 증명 만들기 — clientId·clientSecret·refreshToken 발급 절차를 설명하고, 수명이 긴 refreshToken은 OAuth playground로 손쉽게 만들 수 있어요.
- Camel 보안 모델 — API 기반 컴포넌트에서
Camel*헤더를 신뢰 경계에서 걷어내야 하는 이유를 설명해요.