본문으로 바로가기 본문 바로가기
WIKI 기술 지식 베이스

Box

원문 보기 위키 갱신

Box 컴포넌트는 Box Java SDK로 접근할 수 있는 Box.com API 전반을 Camel 라우트에서 그대로 쓸 수 있게 해 줘요. 파일 업로드·다운로드부터 폴더 생성·편집·관리, 그리고 사용자 계정이나 엔터프라이즈 계정의 변경 사항을 폴링하는 API까지 지원합니다. 인증은 OAuth 2.0 3-legged 방식과 JSON Web Token(JWT) 기반 서비스 계정 방식을 모두 다룰 수 있어요.

출처: 문서

본문

Camel 2.14부터 지원

컨슈머와 프로듀서를 모두 지원해요

Box 컴포넌트는 Box Java SDK로 접근할 수 있는 Box.com API 전반에 대한 접근을 제공해요. 메시지를 프로듀싱해서 파일을 업로드·다운로드하고, 폴더를 생성·편집·관리하는 등의 작업을 할 수 있어요. 사용자 계정의 업데이트, 나아가 엔터프라이즈 계정의 변경 사항까지 폴링할 수 있는 API도 지원합니다.

Box.com은 모든 클라이언트 애플리케이션 인증에 OAuth 2.0을 쓰도록 요구해요. camel-box를 여러분 계정에서 쓰려면 https://developer.box.com에서 Box.com 안에 새 애플리케이션을 만들어야 해요. Box 애플리케이션의 클라이언트 ID와 시크릿은 현재 사용자가 필요한 Box API에 대한 접근을 허용해요. 사용자 액세스 토큰은 최종 사용자(end user)를 위해 API가 생성하고 관리합니다.

Maven 사용자라면 이 컴포넌트를 위해 pom.xml에 다음 의존성을 추가해야 해요:

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-box</artifactId>
    <version>${camel-version}</version>
</dependency>

옵션 설정 (Configuring Options)

Camel 컴포넌트는 서로 다른 두 단계로 설정해요:

  • component level

  • endpoint level

컴포넌트 옵션 설정 (Configuring Component Options)

컴포넌트 레벨에서는 엔드포인트들이 이어서 물려받는 일반적이고 공유되는 설정을 해요. 가장 상위의 설정 레벨이죠.

예를 들어 컴포넌트에는 보안 설정, 인증용 자격 증명, 네트워크 연결 URL 같은 것들이 있을 수 있어요.

컴포넌트에 따라 옵션이 몇 개뿐인 것도 있고 아주 많은 것도 있어요. 컴포넌트는 보통 널리 쓰이는 기본값이 미리 설정되어 있어서, 몇 가지 옵션만 설정하거나 아예 하나도 건드리지 않아도 되는 경우가 많아요.

컴포넌트는 다음 방법으로 설정할 수 있어요:

  • Component DSL을 사용해요.

  • 설정 파일(application.properties, *.yaml 파일 등).

  • Java 코드에서 직접.

엔드포인트 옵션 설정 (Configuring Endpoint Options)

엔드포인트는 옵션이 많아서 설정에 시간을 더 쓰게 될 거예요. 이 옵션들이 엔드포인트가 원하는 일을 하도록 커스터마이즈해 줘요. 옵션은 엔드포인트가 컨슈머(from)로 쓰이는지, 프로듀서(to)로 쓰이는지, 둘 다인지에 따라 분류되기도 해요.

엔드포인트 설정은 대부분 엔드포인트 URI에 _path_와 query 파라미터로 바로 하는 경우가 많아요. Endpoint DSL과 DataFormat DSL을 쓰면 자바에서 엔드포인트와 데이터 포맷을 _타입 세이프_하게 설정할 수도 있어요.

옵션을 설정할 때 좋은 습관은 Property Placeholders를 사용하는 거예요.

프로퍼티 플레이스홀더는 이런 장점이 있어요:

  • URL, 포트 번호, 민감한 정보 같은 설정을 코드에 하드코딩하는 걸 막아 줘요.

  • 설정을 코드 밖으로 분리할 수 있어요.

  • 코드가 더 유연해지고 재사용하기 좋아져요.

아래 두 섹션에서 모든 옵션을 나열해요. 먼저 컴포넌트, 그다음 엔드포인트 순서예요.

컴포넌트 옵션 (Component Options)

Box 컴포넌트는 아래 나열된 옵션들을 지원해요.

Name Description Default Type
clientId (common) Box 애플리케이션 클라이언트 ID예요. String
configuration (common) 공유 설정을 쓰려면 이걸 사용해요. BoxConfiguration
enterpriseId (common) App Enterprise용으로 쓸 엔터프라이즈 ID예요. String
userId (common) App User용으로 쓸 사용자 ID예요. String
bridgeErrorHandler (consumer) 컨슈머를 Camel 라우팅 에러 핸들러(Error Handler)에 브리지할 수 있게 해 줘요. 즉, Camel 컨슈머가 들어오는 메시지를 집어 올리는 동안 등에서 예외가 발생하면(가능한 경우), 그 예외를 메시지로 처리해서 라우팅 에러 핸들러가 다루게 돼요. 중요: 이것은 서드파티 컴포넌트가 예외가 던져졌을 때 Camel에 알릴 수 있도록 허용하는 경우에만 가능해요. 일부 컴포넌트는 내부에서만 처리하기 때문에 bridgeErrorHandler를 쓸 수 없어요. 다른 상황에서는 Camel 컴포넌트를 개선해서 서드파티 컴포넌트에 연결(hook)해 이를 가능하게 만들 수도 있어요. 기본으로 컨슈머는 org.apache.camel.spi.ExceptionHandler로 예외를 처리하는데, WARN 또는 ERROR 레벨로 로그를 남기고 무시해요. false boolean
lazyStartProducer (producer) 프로듀서를 느리게(lazy, 첫 메시지 시점에) 시작할지 여부예요. lazy 시작을 쓰면 프로듀서가 시작 중에 실패해서 라우트 시작이 실패할 수 있는 상황에서도 CamelContext와 라우트를 시작할 수 있어요. 시작을 늦춰 두면 시작 실패가 발생했을 때 메시지를 라우팅하는 동안 Camel의 라우팅 에러 핸들러로 처리할 수 있죠. 단, 첫 메시지를 처리할 때 프로듀서를 만들고 시작하는 데 시간이 조금 걸려서 전체 처리 시간이 길어질 수 있다는 점은 감안하세요. false boolean
autowiredEnabled (advanced) 오토와이어링(autowiring)을 활성화할지 여부예요. 레지스트리에서 일치하는 타입의 인스턴스가 딱 하나 있는지 찾아서, 그 인스턴스로 오토와이어링 옵션(옵션이 autowired로 표시되어 있어야 함)을 자동 설정하는 데 쓰여요. JDBC 데이터 소스, JMS 커넥션 팩토리, AWS 클라이언트 등을 자동 설정할 때 사용할 수 있어요. true boolean
httpParams (advanced) 프록시 호스트 같은 설정에 쓸 커스텀 HTTP 파라미터예요. Map
authenticationType (authentication) 연결에 쓸 인증 타입이에요. 인증 타입: STANDARD_AUTHENTICATION - OAuth 2.0 (3-legged) SERVER_AUTHENTICATION - JSON Web Token을 쓰는 OAuth 2.0. APP_USER_AUTHENTICATION String
accessTokenCache (security) 액세스 토큰을 저장하고 꺼내 쓰는 커스텀 액세스 토큰 캐시예요. IAccessTokenCache
clientSecret (security) Box 애플리케이션 클라이언트 시크릿이에요. String
encryptionAlgorithm (security)
JWT에 쓸 암호화 알고리즘 타입이에요. 지원 알고리즘: RSA_SHA_256, RSA_SHA_384, RSA_SHA_512.

Enum values:

  • RSA_SHA_256

  • RSA_SHA_384

  • RSA_SHA_512

| RSA_SHA_256 | EncryptionAlgorithm | | maxCacheEntries (security) | 캐시에 둘 수 있는 액세스 토큰의 최대 개수예요. | 100 | int | | privateKeyFile (security) | JWT 서명을 만들 때 쓸 프라이빗 키예요. | | String | | privateKeyPassword (security) | 프라이빗 키의 비밀번호예요. | | String | | publicKeyId (security) | JWT 서명 검증에 쓸 퍼블릭 키의 ID예요. | | String | | sslContextParameters (security) | SSLContextParameters로 보안을 설정하려면 이걸 사용해요. | | SSLContextParameters | | userName (security) | Box 사용자 이름이에요. 반드시 제공해야 해요. | | String | | userPassword (security) | Box 사용자 비밀번호예요. authSecureStorage를 설정하지 않았거나 첫 호출에서 null을 반환하는 경우 반드시 제공해야 해요. | | String |

엔드포인트 옵션 (Endpoint Options)

Box 엔드포인트는 다음 URI 문법으로 설정해요:

box:apiName/methodName

다음 path 및 query 파라미터를 사용해요:

경로 파라미터 (Path Parameters)

Name Description Default Type
apiName (common)
필수 수행할 연산의 종류예요.

Enum values:

  • COLLABORATIONS

  • COMMENTS

  • EVENT_LOGS

  • FILES

  • FOLDERS

  • GROUPS

  • EVENTS

  • SEARCH

  • TASKS

  • USERS

| | BoxApiName | | methodName (common) | 필수 선택한 연산에 대해 수행할 하위 연산(sub operation)이에요. | | String |

쿼리 파라미터 (Query Parameters)

Name Description Default Type
clientId (common) Box 애플리케이션 클라이언트 ID예요. String
enterpriseId (common) App Enterprise용으로 쓸 엔터프라이즈 ID예요. String
inBody (common) 교환(exchange)의 In Body로 넘길 파라미터 이름을 설정해요. String
userId (common) App User용으로 쓸 사용자 ID예요. String
exceptionHandler (consumer (advanced)) 컨슈머가 커스텀 ExceptionHandler를 쓰게 할 수 있어요. bridgeErrorHandler 옵션이 활성화되어 있으면 이 옵션은 사용되지 않는다는 점에 주의하세요. 기본으로 컨슈머는 예외를 처리하는데, WARN 또는 ERROR 레벨로 로그를 남기고 무시해요. ExceptionHandler
exchangePattern (consumer (advanced))
컨슈머가 교환(exchange)을 만들 때 교환 패턴을 설정해요.

Enum values:

  • InOnly

  • InOut

| | ExchangePattern | | lazyStartProducer (producer (advanced)) | 프로듀서를 느리게(lazy, 첫 메시지 시점에) 시작할지 여부예요. lazy 시작을 쓰면 프로듀서가 시작 중에 실패해서 라우트 시작이 실패할 수 있는 상황에서도 CamelContext와 라우트를 시작할 수 있어요. 시작을 늦춰 두면 시작 실패가 발생했을 때 메시지를 라우팅하는 동안 Camel의 라우팅 에러 핸들러로 처리할 수 있죠. 단, 첫 메시지를 처리할 때 프로듀서를 만들고 시작하는 데 시간이 조금 걸려서 전체 처리 시간이 길어질 수 있다는 점은 감안하세요. | false | boolean | | httpParams (advanced) | 프록시 호스트 같은 설정에 쓸 커스텀 HTTP 파라미터예요. | | Map | | authenticationType (authentication) | 연결에 쓸 인증 타입이에요. 인증 타입: STANDARD_AUTHENTICATION - OAuth 2.0 (3-legged) SERVER_AUTHENTICATION - JSON Web Token을 쓰는 OAuth 2.0. | APP_USER_AUTHENTICATION | String | | accessTokenCache (security) | 액세스 토큰을 저장하고 꺼내 쓰는 커스텀 액세스 토큰 캐시예요. | | IAccessTokenCache | | clientSecret (security) | Box 애플리케이션 클라이언트 시크릿이에요. | | String | | encryptionAlgorithm (security) |

JWT에 쓸 암호화 알고리즘 타입이에요. 지원 알고리즘: RSA_SHA_256, RSA_SHA_384, RSA_SHA_512.

Enum values:

  • RSA_SHA_256

  • RSA_SHA_384

  • RSA_SHA_512

| RSA_SHA_256 | EncryptionAlgorithm | | maxCacheEntries (security) | 캐시에 둘 수 있는 액세스 토큰의 최대 개수예요. | 100 | int | | privateKeyFile (security) | JWT 서명을 만들 때 쓸 프라이빗 키예요. | | String | | privateKeyPassword (security) | 프라이빗 키의 비밀번호예요. | | String | | publicKeyId (security) | JWT 서명 검증에 쓸 퍼블릭 키의 ID예요. | | String | | sslContextParameters (security) | SSLContextParameters로 보안을 설정하려면 이걸 사용해요. | | SSLContextParameters | | userName (security) | Box 사용자 이름이에요. 반드시 제공해야 해요. | | String | | userPassword (security) | Box 사용자 비밀번호예요. authSecureStorage를 설정하지 않았거나 첫 호출에서 null을 반환하는 경우 반드시 제공해야 해요. | | String |

API 파라미터 (10개 API)

Box 엔드포인트는 API 기반 컴포넌트라서 어떤 API 이름과 API 메서드를 쓰느냐에 따라 추가 파라미터가 붙어요. API 이름과 API 메서드는 엔드포인트 URI에서 apiName/methodName 경로 파라미터 자리에 들어가요:

box:apiName/methodName

API 이름은 아래 표와 같이 10개가 있어요:

API Name Type Description
collaborations Producer Box 협업(collaborations)을 관리하는 연산을 제공해요.
comments Producer Box 댓글(comments)을 관리하는 연산을 제공해요.
event-logs Producer Box 엔터프라이즈(관리자) 이벤트 로그를 읽는 연산을 제공해요.
events Consumer Box 이벤트(events)를 관리하는 연산을 제공해요.
files Producer Box 파일(files)을 관리하는 연산을 제공해요.
folders Producer Box 폴더(folders)를 관리하는 연산을 제공해요.
groups Producer Box 그룹(groups)을 관리하는 연산을 제공해요.
search Producer Box 검색(searches)을 관리하는 연산을 제공해요.
tasks Producer Box 태스크(tasks)를 관리하는 연산을 제공해요.
users Producer Box 사용자(users)를 관리하는 연산을 제공해요.

각 API는 이어지는 다음 섹션에서 문서화돼 있어요.

API: collaborations

프로듀서만 지원해요

collaborations API는 다음 문법으로 정의돼요:

box:collaborations/methodName?[parameters]

7개 메서드가 아래 표에 나열되어 있고, 이어서 각 메서드의 상세 문법을 보여 줘요. (API 메서드는 문법에서 이름 대신 쓸 수 있는 짧은 _별칭_을 가질 수 있어요)

Method Alias Description
addFolderCollaboration add 이 폴더에 협업(collaboration)을 추가해요.
addFolderCollaborationByEmail add 이 폴더에 협업(collaboration)을 추가해요.
deleteCollaboration delete 협업(collaboration)을 삭제해요.
getCollaborationInfo info 협업(collaboration) 정보를 조회해요.
getFolderCollaborations collaborations 폴더의 모든 협업(collaboration) 정보를 조회해요.
getPendingCollaborations pendingCollaborations 현재 사용자의 대기 중인 협업 초대를 모두 조회해요.
updateCollaborationInfo updateInfo 협업(collaboration) 정보를 갱신해요.

Method addFolderCollaboration

시그니처(Signatures):

  • com.box.sdk.BoxCollaboration addFolderCollaboration(String folderId, com.box.sdk.BoxCollaborator collaborator, com.box.sdk.BoxCollaboration.Role role);

box/addFolderCollaboration API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
collaborator 추가할 협업자(collaborator)예요. BoxCollaborator
folderId 협업(collaboration)을 추가할 폴더의 ID예요. String
role 협업자의 역할(role)이에요. Role

Method addFolderCollaborationByEmail

시그니처(Signatures):

  • com.box.sdk.BoxCollaboration addFolderCollaborationByEmail(String folderId, String email, com.box.sdk.BoxCollaboration.Role role);

box/addFolderCollaborationByEmail API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
email 추가할 협업자의 이메일 주소예요. String
folderId 협업(collaboration)을 추가할 폴더의 ID예요. String
role 협업자의 역할(role)이에요. Role

Method deleteCollaboration

시그니처(Signatures):

  • void deleteCollaboration(String collaborationId);

box/deleteCollaboration API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
collaborationId 변경할 댓글의 ID예요. String

Method getCollaborationInfo

시그니처(Signatures):

  • com.box.sdk.BoxCollaboration.Info getCollaborationInfo(String collaborationId);

box/getCollaborationInfo API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
collaborationId 협업(collaboration)의 ID예요. String

Method getFolderCollaborations

시그니처(Signatures):

  • java.util.Collection<com.box.sdk.BoxCollaboration.Info> getFolderCollaborations(String folderId);

box/getFolderCollaborations API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
folderId 협업 정보를 조회할 폴더의 ID예요. String

Method getPendingCollaborations

시그니처(Signatures):

  • java.util.Collection<com.box.sdk.BoxCollaboration.Info> getPendingCollaborations();

box/getPendingCollaborations API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type

Method updateCollaborationInfo

시그니처(Signatures):

  • com.box.sdk.BoxCollaboration updateCollaborationInfo(String collaborationId, com.box.sdk.BoxCollaboration.Info info);

box/updateCollaborationInfo API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
collaborationId 협업(collaboration)의 ID예요. String
info 갱신할 협업 정보예요. Info

위 파라미터 외에도 box API는 쿼리 파라미터를 모두 쓸 수 있어요.

파라미터는 엔드포인트 URI에 담거나 메시지 헤더로 동적으로 줄 수도 있어요. 메시지 헤더 이름은 CamelBox.parameter 형식이어야 해요. inBody 파라미터는 메시지 헤더를 덮어써요. 즉 엔드포인트 파라미터 inBody=myParameterNameHere가 CamelBox.myParameterNameHere 헤더를 이기는 거죠.

API: comments

프로듀서만 지원해요

comments API는 다음 문법으로 정의돼요:

box:comments/methodName?[parameters]

6개 메서드가 아래 표에 나열되어 있고, 이어서 각 메서드의 상세 문법을 보여 줘요. (API 메서드는 문법에서 이름 대신 쓸 수 있는 짧은 _별칭_을 가질 수 있어요)

Method Alias Description
addFileComment add 파일에 댓글을 추가해요.
changeCommentMessage updateMessage 댓글 메시지를 변경해요.
deleteComment delete 댓글을 삭제해요.
getCommentInfo info 댓글 정보를 조회해요.
getFileComments comments 이 파일의 모든 댓글 목록을 조회해요.
replyToComment reply 댓글에 답글을 달아요.

Method addFileComment

시그니처(Signatures):

  • com.box.sdk.BoxFile addFileComment(String fileId, String message);

box/addFileComment API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
fileId 파일의 ID예요. String
message 댓글의 메시지 내용이에요. String

Method changeCommentMessage

시그니처(Signatures):

  • com.box.sdk.BoxComment changeCommentMessage(String commentId, String message);

box/changeCommentMessage API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
commentId 변경할 댓글의 ID예요. String
message 댓글에 담을 새 메시지예요. String

Method deleteComment

시그니처(Signatures):

  • void deleteComment(String commentId);

box/deleteComment API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
commentId 삭제할 댓글의 ID예요. String

Method getCommentInfo

시그니처(Signatures):

  • com.box.sdk.BoxComment.Info getCommentInfo(String commentId);

box/getCommentInfo API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
commentId 댓글의 ID예요. String

Method getFileComments

시그니처(Signatures):

  • java.util.List<com.box.sdk.BoxComment.Info> getFileComments(String fileId);

box/getFileComments API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
fileId 파일의 ID예요. String

Method replyToComment

시그니처(Signatures):

  • com.box.sdk.BoxComment replyToComment(String commentId, String message);

box/replyToComment API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
commentId 답글을 달 댓글의 ID예요. String
message 답글에 담을 메시지예요. String

위 파라미터 외에도 box API는 쿼리 파라미터를 모두 쓸 수 있어요.

파라미터는 엔드포인트 URI에 담거나 메시지 헤더로 동적으로 줄 수도 있어요. 메시지 헤더 이름은 CamelBox.parameter 형식이어야 해요. inBody 파라미터는 메시지 헤더를 덮어써요. 즉 엔드포인트 파라미터 inBody=myParameterNameHere가 CamelBox.myParameterNameHere 헤더를 이기는 거죠.

API: event-logs

프로듀서만 지원해요

event-logs API는 다음 문법으로 정의돼요:

box:event-logs/methodName?[parameters]

1개 메서드가 아래 표에 나열되어 있고, 이어서 각 메서드의 상세 문법을 보여 줘요. (API 메서드는 문법에서 이름 대신 쓸 수 있는 짧은 _별칭_을 가질 수 있어요)

Method Alias Description
getEnterpriseEvents events 시작 위치(선택)를 지정해 이벤트 스트림을 만들고, 이벤트가 수신될 때 알림을 받을 리스너를 추가해요.

Method getEnterpriseEvents

시그니처(Signatures):

  • java.util.List<com.box.sdk.BoxEvent> getEnterpriseEvents(String position, java.util.Date after, java.util.Date before, com.box.sdk.BoxEvent.EventType[] types);

box/getEnterpriseEvents API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
after 반환되는 이벤트 타임스탬프의 하한이에요. Date
before 반환되는 이벤트 타임스탬프의 상한이에요. Date
position 이벤트 스트림의 시작 위치예요. null일 수 있고, 그 경우 범위 안의 모든 이벤트가 반환돼요. String
types 필터링에 쓸 이벤트 타입 목록(선택)이에요. EventType[]

위 파라미터 외에도 box API는 쿼리 파라미터를 모두 쓸 수 있어요.

파라미터는 엔드포인트 URI에 담거나 메시지 헤더로 동적으로 줄 수도 있어요. 메시지 헤더 이름은 CamelBox.parameter 형식이어야 해요. inBody 파라미터는 메시지 헤더를 덮어써요. 즉 엔드포인트 파라미터 inBody=myParameterNameHere가 CamelBox.myParameterNameHere 헤더를 이기는 거죠.

API: events

컨슈머만 지원해요

events API는 다음 문법으로 정의돼요:

box:events/methodName?[parameters]

1개 메서드가 아래 표에 나열되어 있고, 이어서 각 메서드의 상세 문법을 보여 줘요. (API 메서드는 문법에서 이름 대신 쓸 수 있는 짧은 _별칭_을 가질 수 있어요)

Method Alias Description
listen 시작 위치(선택)를 지정해 이벤트 스트림을 만들고, 이벤트가 수신될 때 알림을 받을 리스너를 추가해요.

Method listen

시그니처(Signatures):

  • void listen(com.box.sdk.EventListener listener, Long startingPosition);

box/listen API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
startingPosition 이벤트 스트림의 시작 위치예요. Long

위 파라미터 외에도 box API는 쿼리 파라미터를 모두 쓸 수 있어요.

파라미터는 엔드포인트 URI에 담거나 메시지 헤더로 동적으로 줄 수도 있어요. 메시지 헤더 이름은 CamelBox.parameter 형식이어야 해요. inBody 파라미터는 메시지 헤더를 덮어써요. 즉 엔드포인트 파라미터 inBody=myParameterNameHere가 CamelBox.myParameterNameHere 헤더를 이기는 거죠.

API: files

프로듀서만 지원해요

files API는 다음 문법으로 정의돼요:

box:files/methodName?[parameters]

21개 메서드가 아래 표에 나열되어 있고, 이어서 각 메서드의 상세 문법을 보여 줘요. (API 메서드는 문법에서 이름 대신 쓸 수 있는 짧은 _별칭_을 가질 수 있어요)

Method Alias Description
checkUpload canUpload 업로드 전에 사전 검증을 수행해요. 파일 이름이 이미 있는지, 업로드 권한이 있는지 확인하죠.
copyFile copy 대상 폴더로 파일을 복사해요. 필요하면 새 이름도 붙일 수 있어요.
createFileMetadata createMetadata 전역 properties 템플릿 또는 지정한 템플릿 타입으로 파일 메타데이터를 생성해요.
createFileSharedLink link 파일의 공유 링크를 만들어요.
deleteFile delete 파일을 삭제해요.
deleteFileMetadata delete 파일의 properties 메타데이터를 삭제해요.
deleteFileVersion delete 파일 버전을 삭제해요.
downloadFile download 파일을 다운로드해요.
downloadPreviousFileVersion downloadVersion 파일의 이전 버전을 다운로드해요.
getDownloadURL url Box에서 파일을 바로 다운로드할 수 있는 만료 가능한 URL을 조회해요.
getFileInfo info 파일 정보를 조회해요.
getFileMetadata metadata 파일의 properties 메타데이터를 조회해요.
getFilePreviewLink 임베디드 미리보기 세션을 만들 만료 가능한 URL을 조회해요.
getFileVersions versions 파일의 이전 버전들을 조회해요.
moveFile move 대상 폴더로 파일을 이동해요. 필요하면 새 이름도 붙일 수 있어요.
promoteFileVersion promoteVersion 파일의 이전 버전을 승격(promote)해요.
renameFile rename 파일 이름을 newName으로 바꿔요.
updateFileInfo updateInfo 파일 정보를 갱신해요.
updateFileMetadata updateMetadata 파일의 properties 메타데이터를 갱신해요.
uploadFile upload 부모 폴더로 새 파일을 업로드해요.
uploadNewFileVersion uploadVersion 파일의 새 버전을 업로드해요.

Method checkUpload

시그니처(Signatures):

  • void checkUpload(String fileName, String parentFolderId, Long size);

box/checkUpload API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
fileName 업로드할 파일에 붙일 이름이에요. String
parentFolderId 부모 폴더의 ID예요. String
size 업로드 진행 상황을 모니터링하는 데 쓰는 파일 내용의 크기예요. Long

Method copyFile

시그니처(Signatures):

  • com.box.sdk.BoxFile copyFile(String fileId, String destinationFolderId, String newName);

box/copyFile API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
destinationFolderId 대상(목적지) 폴더의 ID예요. String
fileId 복사할 파일의 ID예요. String
newName 복사본에 붙일 새 이름이에요. newName이 null이면 복사된 파일은 원본과 같은 이름을 가져요. String

Method createFileMetadata

시그니처(Signatures):

  • com.box.sdk.Metadata createFileMetadata(String fileId, com.box.sdk.Metadata metadata, String typeName);

box/createFileMetadata API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
fileId 메타데이터를 생성할 파일의 ID예요. String
metadata 새 메타데이터 값이에요. Metadata
typeName 메타데이터 템플릿 타입 이름이에요. null이면 전역 properties 템플릿 타입을 써요. String

시그니처(Signatures):

  • com.box.sdk.BoxSharedLink createFileSharedLink(String fileId, com.box.sdk.BoxSharedLink.Access access, java.util.Date unshareDate, com.box.sdk.BoxSharedLink.Permissions permissions);

box/createFileSharedLink API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
access 공유 링크의 접근 레벨이에요. Access
fileId 공유 링크를 만들 파일의 ID예요. String
permissions 생성되는 링크의 권한이에요. permissions가 null이면 생성되는 공유 링크는 기본 권한으로 만들어져요. Permissions
unshareDate 생성되는 공유 링크가 만료되는 날짜와 시각이에요. unsharedDate가 null이면 만료되지 않는 링크가 만들어져요. Date

Method deleteFile

시그니처(Signatures):

  • void deleteFile(String fileId);

box/deleteFile API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
fileId 삭제할 파일의 ID예요. String

Method deleteFileMetadata

시그니처(Signatures):

  • void deleteFileMetadata(String fileId);

box/deleteFileMetadata API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
fileId 삭제할 파일의 ID예요. String

Method deleteFileVersion

시그니처(Signatures):

  • void deleteFileVersion(String fileId, Integer version);

box/deleteFileVersion API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
fileId 삭제할 버전을 가진 파일의 ID예요. String
version 삭제할 파일의 버전이에요. 파일의 초기 버전이 0, 두 번째 버전이 1 식으로 늘어나요. Integer

Method downloadFile

시그니처(Signatures):

  • java.io.OutputStream downloadFile(String fileId, java.io.OutputStream output, Long rangeStart, Long rangeEnd, com.box.sdk.ProgressListener listener);

box/downloadFile API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
fileId 파일의 ID예요. String
listener 다운로드 진행 상황을 모니터링할 리스너예요. null이면 진행 상황을 추적하지 않아요. ProgressListener
output 파일 내용이 기록될 스트림이에요. OutputStream
rangeEnd 다운로드를 멈출 파일 내부의 바이트 오프셋이에요. null이면 파일 내용 전체를 다운로드해요. Long
rangeStart 다운로드를 시작할 파일 내부의 바이트 오프셋이에요. null이면 파일 내용 전체를 다운로드해요. Long

Method downloadPreviousFileVersion

시그니처(Signatures):

  • java.io.OutputStream downloadPreviousFileVersion(String fileId, Integer version, java.io.OutputStream output, com.box.sdk.ProgressListener listener);

box/downloadPreviousFileVersion API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
fileId 파일의 ID예요. String
listener 다운로드 진행 상황을 모니터링할 리스너예요. null이면 진행 상황을 추적하지 않아요. ProgressListener
output 버전 내용이 기록될 스트림이에요. OutputStream
version 다운로드할 파일의 버전이에요. 파일의 초기 버전이 0, 두 번째 버전이 1 식으로 늘어나요. Integer

Method getDownloadURL

시그니처(Signatures):

  • java.net.URL getDownloadURL(String fileId);

box/getDownloadURL API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
fileId 파일의 ID예요. String

Method getFileInfo

시그니처(Signatures):

  • com.box.sdk.BoxFile.Info getFileInfo(String fileId, String[] fields);

box/getFileInfo API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
fields 가져올 정보 필드예요. null이면 모든 정보 필드를 가져와요. String[]
fileId 파일의 ID예요. String

Method getFileMetadata

시그니처(Signatures):

  • com.box.sdk.Metadata getFileMetadata(String fileId, String typeName);

box/getFileMetadata API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
fileId 메타데이터를 조회할 파일의 ID예요. String
typeName 메타데이터 템플릿 타입 이름이에요. null이면 전역 properties 템플릿 타입을 써요. String

시그니처(Signatures):

  • java.net.URL getFilePreviewLink(String fileId);

box/getFilePreviewLink API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
fileId 미리보기 링크를 만들 파일의 ID예요. String

Method getFileVersions

시그니처(Signatures):

  • java.util.Collection<com.box.sdk.BoxFileVersion> getFileVersions(String fileId);

box/getFileVersions API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
fileId 파일의 ID예요. String

Method moveFile

시그니처(Signatures):

  • com.box.sdk.BoxFile moveFile(String fileId, String destinationFolderId, String newName);

box/moveFile API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
destinationFolderId 대상(목적지) 폴더의 ID예요. String
fileId 이동할 파일의 ID예요. String
newName 이동한 파일에 붙일 새 이름이에요. newName이 null이면 이동한 파일은 원본과 같은 이름을 가져요. String

Method promoteFileVersion

시그니처(Signatures):

  • com.box.sdk.BoxFileVersion promoteFileVersion(String fileId, Integer version);

box/promoteFileVersion API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
fileId 파일의 ID예요. String
version 승격(promote)할 파일의 버전이에요. 파일의 초기 버전이 0, 두 번째 버전이 1 식으로 늘어나요. Integer

Method renameFile

시그니처(Signatures):

  • com.box.sdk.BoxFile renameFile(String fileId, String newFileName);

box/renameFile API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
fileId 이름을 바꿀 파일의 ID예요. String
newFileName 파일의 새 이름이에요. String

Method updateFileInfo

시그니처(Signatures):

  • com.box.sdk.BoxFile updateFileInfo(String fileId, com.box.sdk.BoxFile.Info info);

box/updateFileInfo API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
fileId 갱신할 파일의 ID예요. String
info 갱신할 정보예요. Info

Method updateFileMetadata

시그니처(Signatures):

  • com.box.sdk.Metadata updateFileMetadata(String fileId, com.box.sdk.Metadata metadata);

box/updateFileMetadata API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
fileId 삭제할 파일의 ID예요. String
metadata 새 메타데이터 값이에요. Metadata

Method uploadFile

시그니처(Signatures):

  • com.box.sdk.BoxFile uploadFile(String parentFolderId, java.io.InputStream content, String fileName, java.util.Date created, java.util.Date modified, Long size, Boolean check, com.box.sdk.ProgressListener listener);

box/uploadFile API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
check 파일 이름이 이미 쓰이고 있다면 대신 uploadNewVersion을 호출하세요. Boolean
content 업로드할 파일 내용을 담은 스트림이에요. InputStream
created 업로드되는 파일에 부여할 콘텐츠 생성 날짜예요. Date
fileName 업로드할 파일에 붙일 이름이에요. String
listener 업로드 진행 상황을 모니터링할 리스너예요. ProgressListener
modified 업로드되는 파일에 부여할 콘텐츠 수정 날짜예요. Date
parentFolderId 부모 폴더의 ID예요. String
size 업로드 진행 상황을 모니터링하는 데 쓰는 파일 내용의 크기예요. Long

Method uploadNewFileVersion

시그니처(Signatures):

  • com.box.sdk.BoxFile uploadNewFileVersion(String fileId, java.io.InputStream fileContent, java.util.Date modified, Long fileSize, com.box.sdk.ProgressListener listener);

box/uploadNewFileVersion API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
fileContent 업로드할 파일 내용을 담은 스트림이에요. InputStream
fileId 파일의 ID예요. String
fileSize 업로드 진행 상황을 모니터링하는 데 쓰는 파일 내용의 크기예요. Long
listener 업로드 진행 상황을 모니터링할 리스너예요. ProgressListener
modified 업로드되는 파일에 부여할 콘텐츠 수정 날짜예요. Date

위 파라미터 외에도 box API는 쿼리 파라미터를 모두 쓸 수 있어요.

파라미터는 엔드포인트 URI에 담거나 메시지 헤더로 동적으로 줄 수도 있어요. 메시지 헤더 이름은 CamelBox.parameter 형식이어야 해요. inBody 파라미터는 메시지 헤더를 덮어써요. 즉 엔드포인트 파라미터 inBody=myParameterNameHere가 CamelBox.myParameterNameHere 헤더를 이기는 거죠.

API: folders

프로듀서만 지원해요

folders API는 다음 문법으로 정의돼요:

box:folders/methodName?[parameters]

11개 메서드가 아래 표에 나열되어 있고, 이어서 각 메서드의 상세 문법을 보여 줘요. (API 메서드는 문법에서 이름 대신 쓸 수 있는 짧은 _별칭_을 가질 수 있어요)

Method Alias Description
copyFolder copy 대상 폴더로 폴더를 복사해요. 필요하면 새 이름도 붙일 수 있어요.
createFolder create parentFolderId로 지정한 부모 폴더 아래에 path로 지정한 폴더를 만들어요. 중간 경로 폴더도 필요하면 함께 만들어요.
createFolderSharedLink create 폴더의 공유 링크를 만들어요.
deleteFolder delete 폴더를 삭제해요.
getFolder folder path가 가리키는 Box 폴더를 반환해요.
getFolderInfo folder 폴더 정보를 조회해요.
getFolderItems folder 폴더 안의 자식 항목 중 특정 범위를 반환하고, 항목별로 가져올 필드도 지정해요.
getRootFolder root 인증된 사용자의 루트 폴더를 반환해요.
moveFolder move 대상 폴더로 폴더를 이동해요. 필요하면 새 이름도 붙일 수 있어요.
renameFolder rename 폴더 이름을 newName으로 바꿔요.
updateFolderInfo updateInfo 폴더 정보를 갱신해요.

Method copyFolder

시그니처(Signatures):

  • com.box.sdk.BoxFolder copyFolder(String folderId, String destinationFolderId, String newName);

box/copyFolder API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
destinationFolderId 대상(목적지) 폴더의 ID예요. String
folderId 복사할 폴더의 ID예요. String
newName 복사본에 붙일 새 이름이에요. newName이 null이면 복사된 폴더는 원본과 같은 이름을 가져요. String

Method createFolder

시그니처(Signatures):

  • com.box.sdk.BoxFolder createFolder(String parentFolderId, String folderName);

  • com.box.sdk.BoxFolder createFolder(String parentFolderId, String[] path);

box/createFolder API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
folderName 생성된 폴더의 이름이에요. String
parentFolderId 부모 폴더의 ID예요. String
path 부모 폴더부터 반환되는 폴더까지의 Box 폴더 이름 나열이에요. String[]

시그니처(Signatures):

  • com.box.sdk.BoxSharedLink createFolderSharedLink(String folderId, com.box.sdk.BoxSharedLink.Access access, java.util.Date unshareDate, com.box.sdk.BoxSharedLink.Permissions permissions);

box/createFolderSharedLink API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
access 공유 링크의 접근 레벨이에요. Access
folderId 공유 링크를 만들 폴더의 ID예요. String
permissions 생성되는 링크의 권한이에요. permissions가 null이면 생성되는 공유 링크는 기본 권한으로 만들어져요. Permissions
unshareDate 생성되는 공유 링크가 만료되는 날짜와 시각이에요. unsharedDate가 null이면 만료되지 않는 링크가 만들어져요. Date

Method deleteFolder

시그니처(Signatures):

  • void deleteFolder(String folderId);

box/deleteFolder API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
folderId 삭제할 폴더의 ID예요. String

Method getFolder

시그니처(Signatures):

  • com.box.sdk.BoxFolder getFolder(String[] path);

box/getFolder API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
path 루트 폴더부터 반환되는 폴더까지의 Box 폴더 이름 나열이에요. String[]

Method getFolderInfo

시그니처(Signatures):

  • com.box.sdk.BoxFolder.Info getFolderInfo(String folderId, String[] fields);

box/getFolderInfo API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
fields 가져올 정보 필드예요. null이면 모든 정보 필드를 가져와요. String[]
folderId 폴더의 ID예요. String

Method getFolderItems

시그니처(Signatures):

  • java.util.Collection<com.box.sdk.BoxItem.Info> getFolderItems(String folderId, Long offset, Long limit, String[] fields);

box/getFolderItems API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
fields 각 자식 항목별로 가져올 항목 필드예요. null이면 모든 항목 필드를 가져와요. String[]
folderId 폴더의 ID예요. String
limit offset 이후에 가져올 자식 항목의 최대 개수예요. null이면 모든 자식 항목을 가져와요. Long
offset 가져올 첫 자식 항목의 인덱스예요. null이면 모든 자식 항목을 가져와요. Long

Method getRootFolder

시그니처(Signatures):

  • com.box.sdk.BoxFolder getRootFolder();

box/getRootFolder API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type

Method moveFolder

시그니처(Signatures):

  • com.box.sdk.BoxFolder moveFolder(String folderId, String destinationFolderId, String newName);

box/moveFolder API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
destinationFolderId 대상(목적지) 폴더의 ID예요. String
folderId 이동할 폴더의 ID예요. String
newName 이동한 폴더에 붙일 새 이름이에요. newName이 null이면 이동한 폴더는 원본과 같은 이름을 가져요. String

Method renameFolder

시그니처(Signatures):

  • com.box.sdk.BoxFolder renameFolder(String folderId, String newFolderName);

box/renameFolder API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
folderId 이름을 바꿀 폴더의 ID예요. String
newFolderName 폴더의 새 이름이에요. String

Method updateFolderInfo

시그니처(Signatures):

  • com.box.sdk.BoxFolder updateFolderInfo(String folderId, com.box.sdk.BoxFolder.Info info);

box/updateFolderInfo API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
folderId 갱신할 폴더의 ID예요. String
info 갱신할 정보예요. Info

위 파라미터 외에도 box API는 쿼리 파라미터를 모두 쓸 수 있어요.

파라미터는 엔드포인트 URI에 담거나 메시지 헤더로 동적으로 줄 수도 있어요. 메시지 헤더 이름은 CamelBox.parameter 형식이어야 해요. inBody 파라미터는 메시지 헤더를 덮어써요. 즉 엔드포인트 파라미터 inBody=myParameterNameHere가 CamelBox.myParameterNameHere 헤더를 이기는 거죠.

API: groups

프로듀서만 지원해요

groups API는 다음 문법으로 정의돼요:

box:groups/methodName?[parameters]

10개 메서드가 아래 표에 나열되어 있고, 이어서 각 메서드의 상세 문법을 보여 줘요. (API 메서드는 문법에서 이름 대신 쓸 수 있는 짧은 _별칭_을 가질 수 있어요)

Method Alias Description
addGroupMembership addMembership 지정한 역할로 그룹에 멤버를 추가해요.
createGroup create 지정한 이름과 추가 파라미터(선택)로 새 그룹을 만들어요.
deleteGroup delete 그룹을 삭제해요.
deleteGroupMembership delete 그룹 멤버십을 삭제해요.
getAllGroups groups 엔터프라이즈의 모든 그룹을 조회해요.
getGroupInfo info 그룹 정보를 조회해요.
getGroupMembershipInfo membershipInfo 그룹 멤버십 정보를 조회해요.
getGroupMemberships memberships 이 그룹의 모든 멤버십 정보를 조회해요.
updateGroupInfo 그룹 정보를 갱신해요.
updateGroupMembershipInfo updateMembershipInfo 그룹 멤버십 정보를 갱신해요.

Method addGroupMembership

시그니처(Signatures):

  • com.box.sdk.BoxGroupMembership addGroupMembership(String groupId, String userId, com.box.sdk.BoxGroupMembership.GroupRole role);

box/addGroupMembership API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
groupId 그룹의 ID예요. String
role 이 그룹에서 사용자가 가질 역할이에요. 기본 역할을 부여하려면 null을 넣으면 돼요. GroupRole
userId 그룹에 추가할 사용자의 ID예요. String

Method createGroup

시그니처(Signatures):

  • com.box.sdk.BoxGroup createGroup(String name, String provenance, String externalSyncIdentifier, String description, String invitabilityLevel, String memberViewabilityLevel);

box/createGroup API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
description 새 그룹의 설명이에요. String
externalSyncIdentifier 새 그룹의 external_sync_identifier 값이에요. String
invitabilityLevel 새 그룹의 invitibility_level 값이에요. String
memberViewabilityLevel 새 그룹의 member_viewability_level 값이에요. String
name 새 그룹의 이름이에요. String
provenance 새 그룹의 provenance 값이에요. String

Method deleteGroup

시그니처(Signatures):

  • void deleteGroup(String groupId);

box/deleteGroup API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
groupId 삭제할 그룹의 ID예요. String

Method deleteGroupMembership

시그니처(Signatures):

  • void deleteGroupMembership(String groupMembershipId);

box/deleteGroupMembership API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
groupMembershipId 삭제할 그룹 멤버십의 ID예요. String

Method getAllGroups

시그니처(Signatures):

  • java.util.Collection<com.box.sdk.BoxGroup> getAllGroups();

box/getAllGroups API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type

Method getGroupInfo

시그니처(Signatures):

  • com.box.sdk.BoxGroup.Info getGroupInfo(String groupId);

box/getGroupInfo API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
groupId 그룹의 ID예요. String

Method getGroupMembershipInfo

시그니처(Signatures):

  • com.box.sdk.BoxGroupMembership.Info getGroupMembershipInfo(String groupMembershipId);

box/getGroupMembershipInfo API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
groupMembershipId 그룹 멤버십의 ID예요. String

Method getGroupMemberships

시그니처(Signatures):

  • java.util.Collection<com.box.sdk.BoxGroupMembership.Info> getGroupMemberships(String groupId);

box/getGroupMemberships API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
groupId 그룹의 ID예요. String

Method updateGroupInfo

시그니처(Signatures):

  • com.box.sdk.BoxGroup updateGroupInfo(String groupId, com.box.sdk.BoxGroup.Info groupInfo);

box/updateGroupInfo API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
groupId 갱신할 그룹의 ID예요. String
groupInfo 갱신할 정보예요. Info

Method updateGroupMembershipInfo

시그니처(Signatures):

  • com.box.sdk.BoxGroupMembership updateGroupMembershipInfo(String groupMembershipId, com.box.sdk.BoxGroupMembership.Info info);

box/updateGroupMembershipInfo API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
groupMembershipId 갱신할 그룹 멤버십의 ID예요. String
info 갱신할 정보예요. Info

위 파라미터 외에도 box API는 쿼리 파라미터를 모두 쓸 수 있어요.

파라미터는 엔드포인트 URI에 담거나 메시지 헤더로 동적으로 줄 수도 있어요. 메시지 헤더 이름은 CamelBox.parameter 형식이어야 해요. inBody 파라미터는 메시지 헤더를 덮어써요. 즉 엔드포인트 파라미터 inBody=myParameterNameHere가 CamelBox.myParameterNameHere 헤더를 이기는 거죠.

프로듀서만 지원해요

search API는 다음 문법으로 정의돼요:

box:search/methodName?[parameters]

1개 메서드가 아래 표에 나열되어 있고, 이어서 각 메서드의 상세 문법을 보여 줘요. (API 메서드는 문법에서 이름 대신 쓸 수 있는 짧은 _별칭_을 가질 수 있어요)

Method Alias Description
searchFolder search 주어진 쿼리로 폴더와 그 하위 폴더 전체를 검색해요.

Method searchFolder

시그니처(Signatures):

  • java.util.Collection<com.box.sdk.BoxItem> searchFolder(String folderId, String query);

box/searchFolder API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
folderId 검색할 폴더의 ID예요. String
query 검색 쿼리예요. String

위 파라미터 외에도 box API는 쿼리 파라미터를 모두 쓸 수 있어요.

파라미터는 엔드포인트 URI에 담거나 메시지 헤더로 동적으로 줄 수도 있어요. 메시지 헤더 이름은 CamelBox.parameter 형식이어야 해요. inBody 파라미터는 메시지 헤더를 덮어써요. 즉 엔드포인트 파라미터 inBody=myParameterNameHere가 CamelBox.myParameterNameHere 헤더를 이기는 거죠.

API: tasks

프로듀서만 지원해요

tasks API는 다음 문법으로 정의돼요:

box:tasks/methodName?[parameters]

9개 메서드가 아래 표에 나열되어 있고, 이어서 각 메서드의 상세 문법을 보여 줘요. (API 메서드는 문법에서 이름 대신 쓸 수 있는 짧은 _별칭_을 가질 수 있어요)

Method Alias Description
addAssignmentToTask addAssignment 태스크에 할당(assignment)을 추가해요.
addFileTask add 파일에 태스크를 추가해요.
deleteTask delete 태스크를 삭제해요.
deleteTaskAssignment delete 태스크 할당을 삭제해요.
getFileTasks tasks 파일의 모든 태스크 목록을 조회해요.
getTaskAssignmentInfo assignmentInfo 태스크 할당 정보를 조회해요.
getTaskAssignments assignments 태스크의 모든 할당 목록을 조회해요.
getTaskInfo info 태스크 정보를 조회해요.
updateTaskInfo updateInfo 태스크 정보를 갱신해요.

Method addAssignmentToTask

시그니처(Signatures):

  • com.box.sdk.BoxTask addAssignmentToTask(String taskId, com.box.sdk.BoxUser assignTo);

box/addAssignmentToTask API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
assignTo 태스크에 배정할 사용자예요. BoxUser
taskId 할당(assignment)을 추가할 태스크의 ID예요. String

Method addFileTask

시그니처(Signatures):

  • com.box.sdk.BoxTask addFileTask(String fileId, com.box.sdk.BoxTask.Action action, java.util.Date dueAt, String message);

box/addFileTask API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
action 태스크 담당자에게 요구할 동작이에요. Action
dueAt 이 태스크의 마감 날짜예요. Date
fileId 태스크를 추가할 파일의 ID예요. String
message 태스크에 함께 담을 메시지(선택)예요. String

Method deleteTask

시그니처(Signatures):

  • void deleteTask(String taskId);

box/deleteTask API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
taskId 삭제할 태스크의 ID예요. String

Method deleteTaskAssignment

시그니처(Signatures):

  • void deleteTaskAssignment(String taskAssignmentId);

box/deleteTaskAssignment API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
taskAssignmentId 삭제할 태스크 할당의 ID예요. String

Method getFileTasks

시그니처(Signatures):

  • java.util.List<com.box.sdk.BoxTask.Info> getFileTasks(String fileId);

box/getFileTasks API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
fileId 파일의 ID예요. String

Method getTaskAssignmentInfo

시그니처(Signatures):

  • com.box.sdk.BoxTaskAssignment.Info getTaskAssignmentInfo(String taskAssignmentId);

box/getTaskAssignmentInfo API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
taskAssignmentId 태스크 할당의 ID예요. String

Method getTaskAssignments

시그니처(Signatures):

  • java.util.List<com.box.sdk.BoxTaskAssignment.Info> getTaskAssignments(String taskId);

box/getTaskAssignments API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
taskId 태스크의 ID예요. String

Method getTaskInfo

시그니처(Signatures):

  • com.box.sdk.BoxTask.Info getTaskInfo(String taskId);

box/getTaskInfo API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
taskId 태스크의 ID예요. String

Method updateTaskInfo

시그니처(Signatures):

  • com.box.sdk.BoxTask updateTaskInfo(String taskId, com.box.sdk.BoxTask.Info info);

box/updateTaskInfo API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
info 갱신할 정보예요. Info
taskId 태스크의 ID예요. String

위 파라미터 외에도 box API는 쿼리 파라미터를 모두 쓸 수 있어요.

파라미터는 엔드포인트 URI에 담거나 메시지 헤더로 동적으로 줄 수도 있어요. 메시지 헤더 이름은 CamelBox.parameter 형식이어야 해요. inBody 파라미터는 메시지 헤더를 덮어써요. 즉 엔드포인트 파라미터 inBody=myParameterNameHere가 CamelBox.myParameterNameHere 헤더를 이기는 거죠.

API: users

프로듀서만 지원해요

users API는 다음 문법으로 정의돼요:

box:users/methodName?[parameters]

11개 메서드가 아래 표에 나열되어 있고, 이어서 각 메서드의 상세 문법을 보여 줘요. (API 메서드는 문법에서 이름 대신 쓸 수 있는 짧은 _별칭_을 가질 수 있어요)

Method Alias Description
addUserEmailAlias addEmailAlias 사용자 계정에 새 이메일 별칭을 추가해요.
createAppUser create Box Developer Edition으로 엔터프라이즈에 추가 사용자 정보와 함께 새 앱 사용자를 프로비저닝해요.
createEnterpriseUser create 엔터프라이즈에 추가 사용자 정보와 함께 새 사용자를 프로비저닝해요.
deleteUser delete 엔터프라이즈 계정에서 사용자를 삭제해요.
deleteUserEmailAlias delete 사용자 계정에서 이메일 별칭을 삭제해요.
getAllEnterpriseOrExternalUsers users 필터 조건에 맞는 관리 대상 사용자와 외부 사용자를 모두 조회해요.
getCurrentUser currentUser 현재 사용자를 조회해요.
getUserEmailAlias emailAlias 사용자의 모든 이메일 별칭 컬렉션을 조회해요.
getUserInfo info 사용자 정보를 조회해요.
moveFolderToUser 지정한 사용자의 루트 폴더를 현재 사용자 쪽으로 이동해요.
updateUserInfo updateInfo 사용자 정보를 갱신해요.

Method addUserEmailAlias

시그니처(Signatures):

  • com.box.sdk.EmailAlias addUserEmailAlias(String userId, String email);

box/addUserEmailAlias API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
email 별칭(alias)으로 추가할 이메일 주소예요. String
userId 사용자의 ID예요. String

Method createAppUser

시그니처(Signatures):

  • com.box.sdk.BoxUser createAppUser(String name, com.box.sdk.CreateUserParams params);

box/createAppUser API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
name 사용자의 이름이에요. String
params 추가 사용자 정보예요. CreateUserParams

Method createEnterpriseUser

시그니처(Signatures):

  • com.box.sdk.BoxUser createEnterpriseUser(String login, String name, com.box.sdk.CreateUserParams params);

box/createEnterpriseUser API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
login 사용자가 로그인에 쓸 이메일 주소예요. String
name 사용자의 이름이에요. String
params 추가 사용자 정보예요. CreateUserParams

Method deleteUser

시그니처(Signatures):

  • void deleteUser(String userId, boolean notifyUser, boolean force);

box/deleteUser API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
force 파일을 아직 가지고 있더라도 이 사용자를 삭제할지 여부예요. Boolean
notifyUser 계정이 삭제됐다는 이메일 알림을 사용자에게 보낼지 여부예요. Boolean
userId 삭제할 사용자의 ID예요. String

Method deleteUserEmailAlias

시그니처(Signatures):

  • void deleteUserEmailAlias(String userId, String emailAliasId);

box/deleteUserEmailAlias API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
emailAliasId 삭제할 이메일 별칭의 ID예요. String
userId 사용자의 ID예요. String

Method getAllEnterpriseOrExternalUsers

시그니처(Signatures):

  • java.util.List<com.box.sdk.BoxUser.Info> getAllEnterpriseOrExternalUsers(String filterTerm, String[] fields);

box/getAllEnterpriseOrExternalUsers API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
fields 가져올 필드예요. 표준 필드만 필요하면 생략하세요. String[]
filterTerm 사용자를 찾을 필터 조건이에요(외부 사용자는 login, 관리 대상 사용자는 login 또는 name). null이면 모든 관리 대상 사용자가 반환돼요. String

Method getCurrentUser

시그니처(Signatures):

  • com.box.sdk.BoxUser getCurrentUser();

box/getCurrentUser API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type

Method getUserEmailAlias

시그니처(Signatures):

  • java.util.Collection<com.box.sdk.EmailAlias> getUserEmailAlias(String userId);

box/getUserEmailAlias API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
userId 사용자의 ID예요. String

Method getUserInfo

시그니처(Signatures):

  • com.box.sdk.BoxUser.Info getUserInfo(String userId);

box/getUserInfo API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
userId 사용자의 ID예요. String

Method moveFolderToUser

시그니처(Signatures):

  • com.box.sdk.BoxFolder.Info moveFolderToUser(String userId, String sourceUserId);

box/moveFolderToUser API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
sourceUserId 이 연산의 소스가 될 파일들을 가진 사용자의 사용자 ID예요. String
userId 사용자의 ID예요. String

Method updateUserInfo

시그니처(Signatures):

  • com.box.sdk.BoxUser updateUserInfo(String userId, com.box.sdk.BoxUser.Info info);

box/updateUserInfo API 메서드는 아래 표에 나열된 파라미터를 사용해요:

Parameter Description Type
info 갱신할 정보예요. Info
userId 갱신할 사용자의 ID예요. String

위 파라미터 외에도 box API는 쿼리 파라미터를 모두 쓸 수 있어요.

파라미터는 엔드포인트 URI에 담거나 메시지 헤더로 동적으로 줄 수도 있어요. 메시지 헤더 이름은 CamelBox.parameter 형식이어야 해요. inBody 파라미터는 메시지 헤더를 덮어써요. 즉 엔드포인트 파라미터 inBody=myParameterNameHere가 CamelBox.myParameterNameHere 헤더를 이기는 거죠.

메시지 헤더 (Message Headers)

Box 컴포넌트가 지원하는 메시지 헤더는 아래와 같아요:

Name Description Default Type
CamelBox. (common) Constant: PROPERTY_PREFIX API 메서드 파라미터를 담는 헤더들의 접두사(prefix)예요. 예컨대 CamelBox.fileName 헤더에 fileName 파라미터가 담기는 식이에요. Object

참고 이 컴포넌트는 API 기반이라서 엔드포인트 옵션 외에도 Camel 접두사가 붙은 교환 헤더로 호출별(call) 파라미터를 넘길 수 있어요. 라우트가 신뢰할 수 없는 프로듀서의 메시지를 소비한다면, 메시지가 이 컴포넌트에 닿기 전에 신뢰 경계(trust boundary)에서 이 내부 헤더들을 걷어내세요 — 예를 들어 removeHeaders("Camel*")을 쓰면 발신자가 API 호출을 덮어쓸 수 없어요. 자세한 내용은 Camel 보안 모델을 참고하세요.

사용법 (Usage)

연결 인증 타입 (Connection Authentication Types)

Box 컴포넌트는 세 가지 인증 연결 방식을 지원해요.

표준 인증 (Standard Authentication)

**표준 인증(Standard Authentication)**은 OAuth 2.0 3-legged 인증 절차로 Box.com과의 연결을 인증해요. 이 인증 방식은 Box **관리 대상 사용자(managed users)**와 외부 사용자가 Box 컴포넌트를 통해 자기 Box 콘텐츠에 접근·편집·저장할 수 있게 해 줘요.

App Enterprise 인증 (App Enterprise Authentication)

App Enterprise 인증은 **OAuth 2.0 with JSON Web Tokens (JWT)**로 Box 애플리케이션의 **서비스 계정(Service Account)**으로서 연결을 인증해요. 이 인증 방식은 서비스 계정이 Box 컴포넌트를 통해 자기 Box 애플리케이션의 Box 콘텐츠에 접근·편집·저장할 수 있게 해 줘요.

App User 인증 (App User Authentication)

App User 인증은 **OAuth 2.0 with JSON Web Tokens (JWT)**로 Box 애플리케이션의 App User로서 연결을 인증해요. 이 인증 방식은 앱 사용자가 Box 컴포넌트를 통해 자기 Box 애플리케이션 안의 Box 콘텐츠에 접근·편집·저장할 수 있게 해 줘요.

예시 (Examples)

다음 라우트는 사용자의 루트 폴더로 새 파일을 업로드해요:

  • Java

  • XML

  • YAML

from("file:...")
    .setHeader("CamelBox.fileName", header("CamelFileName"))
    .to("box://files/upload?inBody=content&parentFolderId=0");
<route>
    <from uri="file:..."/>
    <setHeader name="CamelBox.fileName">
        <header>CamelFileName</header>
    </setHeader>
    <to uri="box://files/upload?inBody=content&amp;parentFolderId=0"/>
</route>
- route:
    from:
      uri: file:...
      steps:
        - setHeader:
            name: CamelBox.fileName
            header: CamelFileName
        - to:
            uri: box://files/upload
            parameters:
              inBody: content
              parentFolderId: "0"

다음 라우트는 사용자 계정의 업데이트를 폴링해요:

  • Java

  • XML

  • YAML

from("box://events/listen?startingPosition=-1")
    .to("bean:blah");
<route>
    <from uri="box://events/listen?startingPosition=-1"/>
    <to uri="bean:blah"/>
</route>
- route:
    from:
      uri: box://events/listen
      parameters:
        startingPosition: -1
      steps:
        - to:
            uri: bean:blah

다음 라우트는 동적 헤더 옵션을 쓰는 프로듀서를 활용해요. fileId 프로퍼티에는 Box 파일 ID가, output 프로퍼티에는 파일 내용의 출력 스트림이 담기는데, 아래처럼 각각 CamelBox.fileId 헤더와 CamelBox.output 헤더로 할당돼요:

자바 전용: header() 표현식으로 동적 헤더를 설정해요

from("direct:foo")
    .setHeader("CamelBox.fileId", header("fileId"))
    .setHeader("CamelBox.output", header("output"))
    .to("box://files/download")
    .to("file://...");

더 알아보기 (More information)

더 자세한 내용은 Box API 레퍼런스를 보세요: https://developer.box.com/reference

더 알아보기 (Learn more)

  • Box API 레퍼런스 — 각 API 연산의 상세 동작과 파라미터를 확인할 수 있는 공식 레퍼런스예요. Box 컴포넌트의 10개 API(collaborations, comments, files 등)가 실제로 어떤 REST 호출로 이어지는지 궁금할 때 이 문서를 참고하세요.
  • Camel 컴포넌트 개요 — 다른 컴포넌트와의 설정 개념(component/endpoint 옵션, property placeholder)이 궁금하면 함께 보면 좋아요.