>  기사  >  백엔드 개발  >  PutObject의 SignatureDoesNotMatch - GetObject를 처리합니다.

PutObject의 SignatureDoesNotMatch - GetObject를 처리합니다.

PHPz
PHPz앞으로
2024-02-09 15:00:101184검색

PutObject 上的 SignatureDoesNotMatch - 处理 GetObject

php 편집기 Strawberry는 이 문서에서 "PutObject의 SignatureDoesNotMatch - GetObject 처리" 문제를 처리하는 방법을 소개합니다. 개체 업로드 및 검색 작업을 수행할 때 요청된 서명이 일치하지 않아 발생할 수 있는 이 오류 메시지가 나타나는 경우가 있습니다. 이 문서에서는 이 문제의 원인을 자세히 설명하고 이 오류를 원활하게 처리하고 개체 업로드 및 검색 작업이 정상적으로 진행될 수 있도록 하는 솔루션을 제공합니다.

질문 내용

s3에서 putobject에 대한 서명된 URL을 생성하려고 합니다. getobject에 대해 이 작업을 수행하는 데 사용하는 방법이 제대로 작동하므로 내 자격 증명이 유효합니다.

공개적으로 접근할 수 있도록 모든 접근 차단을 해제했습니다.

버킷 전략:

으아악

버킷 코르:

으아악

이 경우에는 s3 라이브러리를 사용해 보았고 이제는 s3manager를 사용해 보았습니다. 그러나 서명된 URL을 사용하여 개체를 배치하려고 하면 서명이 일치하지 않는다는 XML 오류가 발생합니다.

아래는 유효한 get 및 실패한 put에 대한 코드입니다.

으아악

curl을 사용하여 파일을 넣는 방법은 다음과 같습니다. curl -x put -t some-file.jpg "https://adobe-sign-test.s3.eu-north-1.amazonaws.com/hejsan.jpg?x-amz-algorithm=aws4-hmac-sha256&x- amz-credential=akiaqjglaaktl3qqfz73%2f20230706%2feu-north-1%2fs3%2faws4_request&x-amz-date=20230706t074846z&x-amz-expires=3600&x-amz-signedheaders=host&x-amz-signature=5eb429ee8efc 1c8ffcae64d77a588119cfde81512bc5c4516a1120b20e26cac7“

put 작업에 대한 오류 메시지는 다음과 같습니다.

{
    "version": "2012-10-17",
    "statement": [
        {
            "sid": "allowputobject",
            "effect": "allow",
            "principal": "*",
            "action": "s3:putobject",
            "resource": "arn:aws:s3:::adobe-sign-test/*"
        }
    ]
}

해결 방법

aws SDK 저장소에 get 및 put이 포함된 Example go와 도움이 될 수 있는 s3용 사전 서명된 URL이 있습니다. readme 파일의 지침에 따라 리포지토리를 복제하고 예제를 직접 실행할 수 있습니다. 이 예제에는 메소드가 있고 이를 실행하는 방법을 보여주는 콘솔 애플리케이션이 있습니다.

으아악

위 내용은 PutObject의 SignatureDoesNotMatch - GetObject를 처리합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제