copyIntoStorage
const url = 'https://dev.api.endueos.com/api/v1/storages/wst_01J9ZK3Q8M4XW7D2N5R6T0V1BC/copies';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"source_storage_id":"wst_01J9ZK3Q8M4XW7D2N5R6T0V1BC","source_path":"example","path":"example","timeout_seconds":600,"wait_ms":0}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://dev.api.endueos.com/api/v1/storages/wst_01J9ZK3Q8M4XW7D2N5R6T0V1BC/copies \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "source_storage_id": "wst_01J9ZK3Q8M4XW7D2N5R6T0V1BC", "source_path": "example", "path": "example", "timeout_seconds": 600, "wait_ms": 0 }'파라미터
섹션 제목: “파라미터”경로 파라미터
섹션 제목: “경로 파라미터”예시
wst_01J9ZK3Q8M4XW7D2N5R6T0V1BC헤더 파라미터
섹션 제목: “헤더 파라미터”요청 본문필수
섹션 제목: “요청 본문필수”이 Storage(대상)로 원본의 파일·폴더를 넣는다. 경로는 모두 Storage 루트 기준 상대 경로다.
object
예시
wst_01J9ZK3Q8M4XW7D2N5R6T0V1BC생략하면 원본 Storage 의 루트 전체
대상 Storage 안의 새 경로. 파일·폴더·링크가 이미 있으면 409 STORAGE_PATH_EXISTS
작업 기한(초). 접수 시각부터 센다. 넘기면 확정 전이면 아무것도 바꾸지 않고 STORAGE_OPERATION_TIMEOUT 으로 끝난다
이 시간 안에 끝나면 201, 아니면 202 와 작업 주소
201
섹션 제목: “201”만들었다.
object
object
Kind 가 copy·move 일 때만 있다 (ENDUE-1162)
object
이동의 원본 제거 단계에서 기한이 지나면 destination_committed=true · source_removed=false 로 끝난다(양쪽에 남는다)
object
서버 처리 시간(ms).
예시
{ "data": { "operation_id": "wso_01J9ZK3Q8M4XW7D2N5R6T0V1BC", "operation_storage_id": "wst_01J9ZK3Q8M4XW7D2N5R6T0V1BC", "kind": "clone", "status": "queued", "source_storage_id": "wst_01J9ZK3Q8M4XW7D2N5R6T0V1BC", "transfer": { "source": { "storage_id": "wst_01J9ZK3Q8M4XW7D2N5R6T0V1BC" }, "destination": { "storage_id": "wst_01J9ZK3Q8M4XW7D2N5R6T0V1BC" } } }}202
섹션 제목: “202”받았지만 아직 끝나지 않았다. Location 으로 상태를 묻는다.
Retry-After 는 다음 조회까지 기다릴 초.
object
object
Kind 가 copy·move 일 때만 있다 (ENDUE-1162)
object
이동의 원본 제거 단계에서 기한이 지나면 destination_committed=true · source_removed=false 로 끝난다(양쪽에 남는다)
object
서버 처리 시간(ms).
예시
{ "data": { "operation_id": "wso_01J9ZK3Q8M4XW7D2N5R6T0V1BC", "operation_storage_id": "wst_01J9ZK3Q8M4XW7D2N5R6T0V1BC", "kind": "clone", "status": "queued", "source_storage_id": "wst_01J9ZK3Q8M4XW7D2N5R6T0V1BC", "transfer": { "source": { "storage_id": "wst_01J9ZK3Q8M4XW7D2N5R6T0V1BC" }, "destination": { "storage_id": "wst_01J9ZK3Q8M4XW7D2N5R6T0V1BC" } } }}응답 헤더
섹션 제목: “응답 헤더”400
섹션 제목: “400”요청 형식이 틀렸다 — VALIDATION_ERROR(details.errors[]) 또는 BAD_REQUEST. 본문은 오류 봉투.
401
섹션 제목: “401”인증이 없거나 무효다 — UNAUTHORIZED. 본문은 오류 봉투.
402
섹션 제목: “402”크레딧이 없다 — INSUFFICIENT_CREDITS (충전하면 다시 된다). 본문은 오류 봉투.
404
섹션 제목: “404”없거나 내 것이 아니다 — *_NOT_FOUND. 본문은 오류 봉투.
409
섹션 제목: “409”지금 상태와 충돌한다 — 코드는 위 설명을 본다. 본문은 오류 봉투.
422
섹션 제목: “422”형식은 맞지만 할 수 없다 — 코드는 위 설명을 본다. 본문은 오류 봉투.
429
섹션 제목: “429”한도를 넘었다 — Retry-After 초 뒤에 다시. 본문은 오류 봉투.
500
섹션 제목: “500”서버 오류 — INTERNAL_ERROR. 본문은 오류 봉투.
503
섹션 제목: “503”의존 서비스에 닿지 못했다 — 잠시 뒤 다시. 본문은 오류 봉투.