Amazon S3에 업로드된 객체의 무결성을 확인하려면 어떻게 해야 하나요?

2분 분량
0

객체를 Amazon Simple Storage Service(S3) 버킷에 업로드하려고 합니다. 또한 업로드된 객체의 무결성을 확인하려고 합니다. 어떻게 해야 합니까?

간략한 설명

Content-MD5 헤더를 사용하여 다음 단계에 따라 업로드된 객체의 무결성을 확인합니다.

참고: Content-MD5 헤더를 사용하면 Amazon S3가 제공된 Content-MD5 값에 대해 객체를 확인합니다. 값이 일치하지 않으면 오류가 발생합니다.

1.    객체의 Content-MD5 값을 계산합니다.

2.    객체 업로드 중에 Content-MD5 값을 요청 헤더로 전달하여 업로드된 객체의 무결성을 확인합니다.

해결 방법

객체의 Content-MD5 값 계산

Windows OS

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

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

참고: Get-FileHash cmdlet은 Microsoft PowerShell Utility 버전 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 공식업데이트됨 2년 전