대머리개발자

고랭(goLand) - NCP Object Storage(s3) 연동 본문

개발이야기

고랭(goLand) - NCP Object Storage(s3) 연동

대머리개발자 2025. 12. 19. 09:36

https://www.ncloud.com/v2/product/storage/objectStorage#detail

 

NAVER CLOUD PLATFORM

cloud computing services for corporations, IaaS, PaaS, SaaS, with Global region and Security Technology Certification

www.ncloud.com

 

코틀린에서 잘 동작하던것이 고랭으로 변경하고 테스트르르 해보니.. 계속 403...

SDK 2025/12/19 09:03:41 DEBUG request failed with unretryable 
error https response error StatusCode: 403
, RequestID: 7222d089-db86-42be-bcd7-c89d407d3122
, HostID: 
, api error AccessDenied: Access Denied

 

실패 원인은 

NCP가 aws-chunked streaming 업로드를 아예 지원 안 함

 

결국 보내는 로그를 까서 그대로 chatGPT를 통해서 확인 

Content-Encoding: aws-chunked
X-Amz-Content-Sha256: STREAMING-UNSIGNED-PAYLOAD-TRAILER
X-Amz-Trailer: x-amz-checksum-crc32

 

응답 :

👉 Naver Object Storage는 이걸 처리 못 합니다
(공식 문서에도 “S3 호환”만 있고, streaming v4는 미지원)

 

 

Go SDK v2는 강제 하지 않으면 기본을 스트리밍으로 보낸다고 한다.... 안 쓸 이유가 없습니까...

 

여러가지 방법이 있겠지만 아래처럼 처리 했다.

s3Client = s3.NewFromConfig(cfg, func(o *s3.Options) {
    o.BaseEndpoint = aws.String("https://kr.object.ncloudstorage.com")
    o.UsePathStyle = true
    // 해당 옵션을 통해 일반 PUT(non-streaming)으로 강제
    o.RequestChecksumCalculation = aws.RequestChecksumCalculationUnset  
})

 

한 줄 옵션으로 2시간을 하악하악.