Cloud./aws

[S3] 멀티파트 업로드시 응답 헤더에 ETag가 안넘어올 때

인쥭 2024. 5. 30. 09:15
반응형

브라우저 상에서 uploadPart 호출에 대한 응답 헤더에 ETag가 넘어오지 않아 completeMultipartUpload를 호출할 수 없는 현상이 있었다. completeMultipartUpload에는 각 UploadPart 별 ETag를 필수로 전달해야하기 때문!

나와 같은 문제를 겪는 사람이 이미 aws-sdk 깃허브에 문의를 올려두었었고, 답은 버킷의 CORS 설정에 있었다.

 

s3.uploadPart not returning eTag (or any other data) · Issue #384 · aws/aws-sdk-js

When using the s3.uploadPart() function, the return data is empty. There is no error response, but also no data. Currently using aws-sdk-js#2.0.19. It was working previously, but no longer. Is ther...

github.com

AWS S3 콘솔을 기준으로, 해당 버킷의 권한 -> 최하단의 CORS 메뉴에 작성된 헤더 중 ExposeHeaders가 누락되었을 수 있으니, 아래와 같이 적용해주자.

[
    {
        // ... 기타 설정은 생략
        "ExposeHeaders": [
            "ETag"
        ]
    }
]

 

사실 더 자세한 설명은 AWS 공식 문서 상에도 나와있다.

 

CORS(Cross-Origin Resource Sharing) - AWS SDK for JavaScript

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com