Folders API
폴더에 대한 동작입니다. 폴더와 파일이 공유하는 리소스 모델, 목록 endpoint, 폴더 트리는 Common conventions에 있습니다. 이 페이지는 폴더에만 해당하는 내용을 다룹니다.
Base URL과 scope
/api/external/v1/folders
읽기 동작은 api:read가 필요합니다. 생성·삭제·이름 변경·이동은 api:write가 추가로 필요합니다.
폴더 생성
api:write 필요POST /api/external/v1/folders
| 파라미터 | Type | 필수 | 설명 |
|---|---|---|---|
fn | string | Yes | 폴더 이름 |
pfs | long | No | 부모 폴더 seq. ss를 보낼 때 필수 |
ss | integer | No | 공유 사용자 seq |
curl -X POST "https://drive.example.com/api/external/v1/folders" \
-H "Authorization: Bearer replace-with-your-api-key" \
-H "Content-Type: application/json" \
-d '{"pfs": 5, "fn": "Contracts"}'
{
"result": true,
"code": 201,
"message": "Created",
"data": {
"resourceSeq": 2056,
"resourceName": "Contracts"
}
}
pfs를 생략하면 드라이브 최상위에 만들어집니다. 만들기 전에 이름을 확인하려면
Common conventions의 이름 중복 확인 endpoint를 사용합니다.
폴더 이름 변경
api:write 필요PATCH /api/external/v1/folders/{resourceSeq}/rename
| 파라미터 | Type | 필수 | 설명 |
|---|---|---|---|
resourceSeq | long | Yes | path 파라미터 - 이름을 바꿀 폴더 |
rn | string | Yes | 새 이름 |
ss | integer | No | 공유 사용자 seq. 공유 폴더면 필수 |
pfs | long | No | 부모 폴더 seq. 공유 폴더면 필수 |
curl -X PATCH "https://drive.example.com/api/external/v1/folders/{resourceSeq}/rename" \
-H "Authorization: Bearer replace-with-your-api-key" \
-H "Content-Type: application/json" \
-d '{"ss": 21, "pfs": 5, "rn": "Signed contracts"}'
파일 이름 변경 endpoint와 달리 이름 충돌 정책 파라미터가 없습니다.
폴더 이동
api:write 필요POST /api/external/v1/folders/{resourceSeq}/move
| 파라미터 | Type | 필수 | 설명 |
|---|---|---|---|
resourceSeq | long | Yes | path 파라미터 - 이동할 폴더 |
ts | integer | No | 대상 사용자 seq. 공유 폴더면 필수 |
pfs | long | No | 이동할 폴더 seq. 공유 폴더면 필수 |
ss | integer | No | 공유 사용자 seq |
curl -X POST "https://drive.example.com/api/external/v1/folders/{resourceSeq}/move" \
-H "Authorization: Bearer replace-with-your-api-key" \
-H "Content-Type: application/json" \
-d '{"ts": 1, "ss": 21, "pfs": 5}'
폴더를 옮기면 그 안의 내용도 함께 이동합니다.
폴더 삭제
api:write 필요PATCH /api/external/v1/folders/{resourceSeq}/delete
| 파라미터 | Type | 필수 | 설명 |
|---|---|---|---|
resourceSeq | long | Yes | path 파라미터 - 삭제할 폴더 |
폴더와 그 안의 내용은 완전히 제거되지 않고 휴지통으로 이동합니다. 삭제에 실패하면 RESOURCE_001을 반환합니다.
폴더 다운로드
폴더는 두 단계를 거쳐 ZIP 아카이브로 내려받습니다. 먼저 토큰을 발급합니다.
GET /api/external/v1/folders/{resourceSeq}/download-token
| 파라미터 | Type | 필수 | 설명 |
|---|---|---|---|
resourceSeq | long | Yes | path 파라미터 - 내려받을 폴더 |
ss | integer | No | 공유 사용자 seq |
{
"result": true,
"code": 200,
"message": "OK",
"data": {
"linkUrl": "/folders/download?dt={token}"
}
}
그다음 반환된 경로로 브라우저를 보냅니다.
GET /api/external/v1/folders/download?dt={dt}
HTTP 200 OK
Content-Type: application/zip
Content-Disposition: attachment; filename="archive.zip"
고정 폴더
사용자는 빠른 접근을 위해 폴더를 고정할 수 있습니다. 고정 폴더는 사용자별로 관리되며 최대 3개입니다.
고정 폴더 등록과 삭제는 쓰기 동작으로 취급되지 않습니다. api:read만 가진 키로도 고정 목록을 바꿀 수 있습니다.
고정 폴더 목록
GET /api/external/v1/pinned-folders
파라미터가 없습니다. 결과는 고정한 순서로 정렬됩니다. 원본 폴더가 삭제되면 목록에서 자동으로 빠집니다.
| Field | Type | 의미 |
|---|---|---|
pinnedFolderSeq | long | 고정 항목의 식별자. 해제할 때 사용 |
resourceSeq | long | 고정된 폴더 |
sharedByUserSeq | integer | 폴더 소유자의 사용자 seq. 본인 폴더면 본인 seq |
resourceName | string | 폴더 이름 |
resourceType | enum | 항상 FOLDER |
폴더 고정
POST /api/external/v1/pinned-folders
| 파라미터 | Type | 필수 | 설명 |
|---|---|---|---|
rs | long | Yes | 폴더 리소스 seq. 파일 seq를 보내면 RESOURCE_005로 실패 |
ss | integer | No | 폴더 소유자의 사용자 seq. 공유받은 폴더를 고정할 때 필수 |
curl -X POST "https://drive.example.com/api/external/v1/pinned-folders" \
-H "Authorization: Bearer replace-with-your-api-key" \
-H "Content-Type: application/json" \
-d '{"rs": 17466, "ss": 43}'
폴더의 조회 권한을 검사합니다. 공유받지 않은 폴더는 PERMISSION_001, 접근할 수 없는 폴더는 PERMISSION_002로
실패합니다. 같은 폴더를 다시 고정하면 PINNED_FOLDER_002, 3개를 초과하면 PINNED_FOLDER_003으로 실패합니다.
고정 해제
DELETE /api/external/v1/pinned-folders/{pinnedFolderSeq}
| 파라미터 | Type | 필수 | 설명 |
|---|---|---|---|
pinnedFolderSeq | long | Yes | path 파라미터 - 해제할 고정 항목 |
본인 것이 아니거나 이미 사라진 고정 항목을 해제하면 PINNED_FOLDER_001을 반환합니다. 폴더 자체는 영향을 받지
않습니다.
에러
이 endpoint들이 반환하는 코드 전체 목록은 Errors를 참고합니다.