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 미지원: 객체 내용 쿼리 기능 없음
- 완전한 멀티파트 관리 부족: 중단/목록 조회 기능 없음