Amazon S3에 업로드한 객체의 무결성을 확인하려면 어떻게 해야 합니까?

2분 분량
0

Amazon Simple Storage Service(Amazon S3) 버킷에 객체를 업로드하고 싶습니다. 또한 업로드한 객체의 무결성을 확인하고 싶습니다.

간략한 설명

Content-MD5 헤더를 사용하여 업로드한 객체의 무결성을 확인하려면 다음 단계를 사용하십시오.

참고: Content-MD5 헤더를 사용하는 경우 Amazon S3는 제공된 Content-MD5 값을 기준으로 객체를 확인합니다. 값이 일치하지 않으면 오류가 발생합니다.

해결 방법

객체의 Content-MD5 값 계산

Windows OS

Windows 운영 체제를 사용하는 경우 Microsoft PowerShell 유틸리티Get-FileHash cmdlet을 사용하여 다음과 같이 MD5 다이제스트를 계산할 수 있습니다.

Get-FileHash \path\to\file -algorithm MD5 | Format-List

참고: Get-FileHash cmdlet은 Microsoft PowerShell 유틸리티 버전 4.0 이상에서 사용할 수 있습니다.

다음은 출력 예시입니다.

Algorithm : MD5
Hash      : C9A5A6878D97B48CC965C1E41859F034
Path      : \path\to\file

그런 다음 계산된 MD5 다이제스트에 base64 인코딩을 적용하여 필요한 Content-MD5 값을 가져옵니다.

$hashString ='C9A5A6878D97B48CC965C1E41859F034'
$hashByteArray = [byte[]] ($hashString -replace '..', '0x$&,' -split ',' -ne '')
$ContentMD5 = [System.Convert]::ToBase64String($hashByteArray)
Echo $ContentMD5
yaWmh42XtIzJZcHkGFnwNA==

이 예에서 Echo $ContentMD5, ("yaWmh42XtIzJZcHkGFnwNA==")의 출력은 필수 Content-MD5 값입니다.

Linux OS

Linux 운영 체제를 사용하는 경우 다음 OpenSSL 명령을 실행하여 파일의 Content-MD5 값을 가져옵니다.

openssl md5 -binary PATH/TO/FILE | base64

업로드한 객체의 무결성 확인

PutObject를 사용하여 Amazon S3에 객체를 업로드할 때 Content-MD5 값을 요청 헤더로 전달하십시오. Amazon S3는 제공된 Content-MD5 값을 기준으로 객체를 확인합니다. 값이 일치하지 않으면 오류가 발생합니다.

Content-MD5 요청 헤더는 S3 UploadPart API와 함께 사용할 수도 있습니다.

관련 정보

일반 요청 헤더

S3 오류 응답

AWS 공식
AWS 공식업데이트됨 6달 전