AWS S3 Standard API vs. CB‐Spider S3 API - cloud-barista/cb-spider GitHub Wiki

AWS S3 표준 API vs CB-Spider S3 API 현황 비교

1. CB-Spider가 지원하는 AWS S3 표준 API ✅

카테고리 API 이름 AWS 표준 엔드포인트 CB-Spider 엔드포인트 함수명 호환성
버킷 관리 ListBuckets GET / GET / ListS3Buckets ✅ 완전 호환
CreateBucket PUT /{bucket} PUT /:Name CreateS3Bucket ✅ 완전 호환
DeleteBucket DELETE /{bucket} DELETE /:Name DeleteS3Bucket ✅ 완전 호환
HeadBucket HEAD /{bucket} HEAD /:Name GetS3Bucket ✅ 완전 호환
GetBucketLocation GET /{bucket}?location GET /:Name?location getBucketLocation ✅ 완전 호환
버킷 설정 GetBucketVersioning GET /{bucket}?versioning GET /:Name?versioning getBucketVersioning ✅ 완전 호환
PutBucketVersioning PUT /{bucket}?versioning PUT /:Name?versioning putBucketVersioning ✅ 완전 호환
GetBucketCors GET /{bucket}?cors GET /:Name?cors getBucketCORS ✅ 완전 호환
PutBucketCors PUT /{bucket}?cors PUT /:Name?cors putBucketCORS ✅ 완전 호환
DeleteBucketCors DELETE /{bucket}?cors DELETE /:Name?cors deleteBucketCORS ✅ 완전 호환
객체 관리 PutObject PUT /{bucket}/{key} PUT /:BucketName/:ObjectKey+ PutS3ObjectFromFile ✅ 완전 호환
GetObject GET /{bucket}/{key} GET /:BucketName/:ObjectKey+ DownloadS3Object ✅ 완전 호환
DeleteObject DELETE /{bucket}/{key} DELETE /:BucketName/:ObjectKey+ DeleteS3Object ✅ 완전 호환
HeadObject HEAD /{bucket}/{key} HEAD /:BucketName/:ObjectKey+ GetS3ObjectInfo ✅ 완전 호환
ListObjects GET /{bucket} GET /:Name ListS3Objects ✅ 완전 호환
ListObjectsV2 GET /{bucket}?list-type=2 GET /:Name ListS3Objects ⚠️ V1으로 처리
버전 관리 ListObjectVersions GET /{bucket}?versions GET /:Name?versions listObjectVersions ✅ 완전 호환
멀티파트 업로드 CreateMultipartUpload POST /{bucket}/{key}?uploads POST /:Name?uploads initiateMultipartUpload ✅ 완전 호환
UploadPart PUT /{bucket}/{key}?partNumber&uploadId PUT /:BucketName/:ObjectKey+?partNumber&uploadId uploadPart ✅ 완전 호환
CompleteMultipartUpload POST /{bucket}/{key}?uploadId POST /:Name?uploadId completeMultipartUpload ✅ 완전 호환
일괄 작업 DeleteObjects POST /{bucket}?delete POST /:Name?delete deleteMultipleObjects ✅ 완전 호환
폼 업로드 PostObject POST /{bucket} POST /:Name postObject ✅ 완전 호환

2. CB-Spider 특화 API (AWS 표준에 없음) 🚀

기능 CB-Spider 엔드포인트 함수명 설명 고유 특징
강제 버킷 비우기 DELETE /:Name?empty ForceEmptyS3Bucket 버킷 내 모든 객체(버전 포함) 강제 삭제 🆕 운영 편의성
강제 버킷 삭제 DELETE /:Name?force ForceDeleteS3Bucket 비어있지 않은 버킷 강제 삭제 🆕 운영 편의성
다중 인증 지원 모든 엔드포인트 getConnectionName CB-Spider ConnectionName 방식 지원 🆕 CB-Spider 고유
AdminWeb 헤더 모든 엔드포인트 getConnectionName X-Connection-Name 헤더 지원 🆕 관리 도구 연동
JSON 객체 정보 GET /:BucketName/:ObjectKey+ (GET 방식) GetS3ObjectInfo 객체 메타데이터를 JSON으로 반환 🆕 개발 편의성

3. AWS S3 표준 API 중 CB-Spider가 지원하지 않는 API ❌

3.1 버킷 정책 및 ACL 관리

AWS API 표준 엔드포인트 미지원 이유
PutBucketPolicy PUT /{bucket}?policy ❌ 구현되지 않음
GetBucketPolicy GET /{bucket}?policy ❌ 구현되지 않음
DeleteBucketPolicy DELETE /{bucket}?policy ❌ 구현되지 않음
PutBucketAcl PUT /{bucket}?acl ❌ 구현되지 않음
GetBucketAcl GET /{bucket}?acl ❌ 구현되지 않음
PutObjectAcl PUT /{bucket}/{key}?acl ❌ 구현되지 않음
GetObjectAcl GET /{bucket}/{key}?acl ❌ 구현되지 않음

3.2 고급 버킷 설정

AWS API 표준 엔드포인트 미지원 이유
PutBucketLifecycleConfiguration PUT /{bucket}?lifecycle ❌ 구현되지 않음
GetBucketLifecycleConfiguration GET /{bucket}?lifecycle ❌ 구현되지 않음
DeleteBucketLifecycle DELETE /{bucket}?lifecycle ❌ 구현되지 않음
PutBucketWebsite PUT /{bucket}?website ❌ 구현되지 않음
GetBucketWebsite GET /{bucket}?website ❌ 구현되지 않음
DeleteBucketWebsite DELETE /{bucket}?website ❌ 구현되지 않음
PutBucketNotificationConfiguration PUT /{bucket}?notification ❌ 구현되지 않음
GetBucketNotificationConfiguration GET /{bucket}?notification ❌ 구현되지 않음

3.3 객체 태깅 및 메타데이터

AWS API 표준 엔드포인트 미지원 이유
PutBucketTagging PUT /{bucket}?tagging ❌ 구현되지 않음
GetBucketTagging GET /{bucket}?tagging ❌ 구현되지 않음
DeleteBucketTagging DELETE /{bucket}?tagging ❌ 구현되지 않음
PutObjectTagging PUT /{bucket}/{key}?tagging ❌ 구현되지 않음
GetObjectTagging GET /{bucket}/{key}?tagging ❌ 구현되지 않음
DeleteObjectTagging DELETE /{bucket}/{key}?tagging ❌ 구현되지 않음

3.4 멀티파트 업로드 관리

AWS API 표준 엔드포인트 미지원 이유
AbortMultipartUpload DELETE /{bucket}/{key}?uploadId ❌ 구현되지 않음
ListParts GET /{bucket}/{key}?uploadId ❌ 구현되지 않음
ListMultipartUploads GET /{bucket}?uploads ❌ 구현되지 않음

3.5 고급 기능

AWS API 표준 엔드포인트 미지원 이유
CopyObject PUT /{bucket}/{key} (x-amz-copy-source) ❌ 구현되지 않음
SelectObjectContent POST /{bucket}/{key}?select ❌ S3 Select 미지원
RestoreObject POST /{bucket}/{key}?restore ❌ Glacier 복원 미지원

4. 호환성 요약

구분 지원 API 수 미지원 API 수 특화 API 수 호환률
버킷 관리 5개 0개 2개 100%
버킷 설정 6개 9개 0개 40%
객체 관리 6개 2개 1개 75%
멀티파트 업로드 3개 3개 0개 50%
기타 고급 기능 2개 4개 2개 33%
전체 22개 18개 5개 55%

5. CB-Spider의 주요 차별점

✅ 장점

  • 운영 편의성: 강제 삭제/비우기 기능으로 운영 부담 감소
  • 다중 인증: AWS 표준 + CB-Spider 고유 인증 방식 동시 지원
  • 개발 친화적: JSON 응답 옵션으로 개발 편의성 향상
  • 핵심 기능 완전 지원: 기본적인 S3 작업은 모두 지원

⚠️ 제한사항

  • 고급 관리 기능 부족: ACL, 정책, 라이프사이클 등 엔터프라이즈 기능 미지원
  • 태깅 시스템 미지원: 객체/버킷 태깅 기능 없음
  • S3 Select 미지원: 객체 내용 쿼리 기능 없음
  • 완전한 멀티파트 관리 부족: 중단/목록 조회 기능 없음