runlot
참조API

파일 저장소

storage 카테고리의 API 작업 3개를 다룹니다.

메서드경로설명
GET/v1/orgs/{orgSlug}/projects/{projectName}/storage객체 스토리지 상태 (runlot storage usage)
POST/v1/orgs/{orgSlug}/projects/{projectName}/storage스토리지 권한 부여 (runlot deploy"storage": true 선언을 읽을 때 호출됩니다)
DELETE/v1/orgs/{orgSlug}/projects/{projectName}/storage스토리지 사용 해지 (runlot storage delete)

GET /v1/orgs/{orgSlug}/projects/{projectName}/storage

활성화 여부, prefix, 할당량, 사용량입니다 (docs/storage.md §7, §8). usedBytes는 노드가 보고한 마지막 관측값이므로 보고 주기만큼 지연됩니다 — 그 사이에 할당량을 약간 초과할 수 있습니다.

객체 목록 조회와 서명된 URL은 이 API의 대상이 아닙니다. 자격 증명은 node-agent에만 존재하며(§4.1), 바이트를 CP로 두 번 보내지 않는다는 것이 §5의 결정입니다.

뷰어 이상.

operationId getStorage

상태 코드설명응답 본문
200스토리지 상태StorageStatus
403
404
503no_core — cp-core에 연결되지 않음Error

POST /v1/orgs/{orgSlug}/projects/{projectName}/storage

이 작업은 idempotent합니다 — 두 번 호출해도 prefix는 변경되지 않습니다. 재시도가 prefix를 바꾼다면 그 prefix 아래에 이미 저장된 모든 객체가 보이지 않게 되고, 그 손실은 즉시 드러나지 않습니다.

요청 본문은 없습니다. prefix는 격리 경계이고(docs/storage.md §4.4), 할당량은 플랜에 의해 설정되므로(§4.5) 둘 다 사용자가 설정하는 값이 아닙니다.

활성화되면 노드는 다음 convergence에서 env.storage를 worker에 연결합니다. env.db와 마찬가지로 재배포가 필요하지 않습니다.

member 이상입니다. 감사 로그에는 storage.grant로 기록됩니다.

operationId grantStorage

상태 코드설명응답 본문
200부여 상태(이미 있었다면 기존 값)StorageStatus
403
404
503no_coreError

DELETE /v1/orgs/{orgSlug}/projects/{projectName}/storage

객체는 삭제되지 않습니다. prefix 아래의 모든 것을 삭제하는 작업은 op_id로 idempotent한 CP 작업이어야 하며(docs/storage.md §7, 데이터베이스 삭제와 같은 경로입니다), 그 경로는 아직 존재하지 않습니다 — 이 사실은 감사 로그에 기록됩니다.

비활성화 역시 idempotent합니다. 스토리지가 활성화되어 있지 않았을 때도 204를 반환합니다.

admin 이상입니다 — 과금은 멈추지만 객체는 고아 상태가 되므로, 배포 롤백과 같은 수준으로 다루지 않습니다. 감사 로그에는 storage.revoke로 기록됩니다.

operationId revokeStorage

상태 코드설명응답 본문
204분리됨
403
404
503no_coreError

이 페이지의 목차