SignedHeaderList, SignedParameterList, Signature 세 가지 값을 직접 할당할 수 있습니다. 알고리즘을 통해 생성해야 하는
키-값 쌍에 대한 자세한 설명은 공식 문서를 참조하세요. .
하나씩 깨기서명을 요청하려면 총 7개의 값이 필요합니다. 각 q-sign-algorithm서명 알고리즘을 깨기 위해 아래에서 하나씩 설명하겠습니다. 공식에서는 sha1만 지원하므로 그냥 주면 됩니다. 값을 직접q-ak 계정 ID, 즉 사용자의 SecretId는 콘솔의 Cloud API Key 페이지에서 확인할 수 있습니다q-sign-time 현재 서명, Unix 타임스탬프 형식, 영어 반각 세미콜론, 형식은 다음과 같습니다. 1480932292;1481012298q-key-timeq-sign-time과 동일한 값q-header-listPersonal 이해하면 HTTP 요청 헤더로 구성되며 요청 헤더의 전부 또는 일부를 가져와 키:값 형식을 사용합니다. 요청 항목의 키 부분을 꺼내어 소문자로 변환하고 사전에 따라 여러 키를 정렬하고 연결합니다. ; 문자를 사용하여 마지막으로 문자열을 형성합니다예를 들어 원래 요청 헤더에는 2개의
key가 Host와 Content-Type이고 작업 후 출력 content-type;hostq-url-param-list가 있습니다. 개인적인 이해에 따르면, HTTP 요청 매개변수로 구성되며, 요청 매개변수의 전부 또는 일부를 취하고, 요청 매개변수의 핵심 부분을 키=값 형식으로 꺼내어 소문자로 변환합니다. 여러 키가 사전별로 정렬됩니다. , 문자 ;로 연결되어 최종적으로 문자열 으로 구성됩니다. 예를 들어 원래 HTTP 요청은
GET /?prefix=abc&max-keys=20
로그인 후 복사
key가 prefix와 max-keys이고, 연산 후에는 max-keys가 출력됩니다. 요청에 put, post와 같은 매개변수가 없습니다. 이것은 비어 있습니다.q-signatureHTTP 콘텐츠를 기반으로 서명을 계산하고, 알고리즘은 COS에서 제공하며, 필요한 대로 값을 제공하세요공식 예시 및 참조 결과논리 작성을 시작하기 전에 먼저 살펴보세요. 공식 예제에서 제공하는 참조 값과 계산된 결과를 살펴보고 자신이 개발한 논리와 결과를 비교할 수 있습니다. HTTP 원래 요청은 서명을 계산하기 전이나 서명이 필요하지 않은 경우의 HTTP 요청으로도 이해될 수 있습니다:
PUT /testfile2 HTTP/1.1
Host: bucket1-1254000000.cos.ap-beijing.myqcloud.com
x-cos-content-sha1: 7b502c3a1f48c8609ae212cdfb639dee39673f5e
x-cos-storage-class: standard
Hello world
로그인 후 복사
서명을 계산한 후 얻어야 하는 HTTP 요청:
PUT /testfile2 HTTP/1.1
Host: bucket1-1254000000.cos.ap-beijing.myqcloud.com
x-cos-content-sha1: 7b502c3a1f48c8609ae212cdfb639dee39673f5e
x-cos-storage-class: standard
Authorization: q-sign-algorithm=sha1&q-ak=AKIDQjz3ltompVjBni5LitkWHFlFpwkn9U5q&> q-sign-time=1417773892;1417853898&q-key-time=1417773892;1417853898&q-header-list=host;x-cos-content-sha1;x-cos-storage-class&q-url-param-list=&q-signature=14e6ebd7955b0c6da532151bf97045e2c5a64e10
Hello world
로그인 후 복사
결론: 서명을 계산할 수 있다면 알고리즘은 올바른 것입니다. Authorization 후 문자열 Preparation(공식적으로 제공되는) 사용자 정보와 HTTP 정보를 살펴보겠습니다. SecretId: AKIDQjz3ltompVjBni5LitkWHFlFpwkn9U5q
SecretKey: BQYIM75p8 x0iWVFSIgqEKwFprpRSVHlz
서명 유효 시작 시간: 141 7773892
서명 유효한 중지 시간: 1417853898
HTTP 원본 요청 헤더: 이전 섹션의 예와 다름 호스트, x-cos-content의 세 가지 콘텐츠가 있는 HTTP 원본 요청을 가져오기가 어렵습니다. -sha1 및 x-cos-storage-class
HTTP 요청 매개변수: PUT 요청인가요, 아니요? 매개변수
서명 계산이 준비됩니다. 작업 중 다양한 매개변수를 요청 서명 규칙에 가져옵니다. , 다음 표와 같이 결과를 얻는 것은 어렵지 않습니다.