검색

4.7. Swift 임시 URL 작업

download PDF

임시 액세스를 허용하기 위해 radosgw 의 swift 엔드포인트에서 임시 URL 기능을 지원합니다. 예를 들어 GET 요청은 자격 증명을 공유할 필요 없이 오브젝트에 대한 요청입니다.

이 기능의 경우 처음에 X-Account-Meta-Temp-URL-KeyX-Account-Meta-Temp-URL-Key-2 값을 설정해야 합니다. Temp URL 기능은 이러한 비밀 키에 대해 HMAC-SHA1 서명을 사용합니다.

4.7.1. Swift에서 임시 URL 오브젝트 가져오기

임시 URL은 다음 요소를 포함하는 암호화 HMAC-SHA1 서명을 사용합니다.

  • 요청 방법의 값, 인스턴스의 "GET"
  • 만료 시간, epoch 이후의 초 형식으로, 즉 Unix 시간
  • "v1" 이후의 요청 경로

위의 항목은 새 줄 사이에 추가되는 줄로 정규화되고 HMAC는 이전에 게시된 Temp URL 키 중 하나에 대해 SHA-1 해싱 알고리즘을 사용하여 생성됩니다.

위를 보여주는 샘플 python 스크립트는 다음과 같습니다.

예제

import hmac
from hashlib import sha1
from time import time

method = 'GET'
host = 'https://objectstore.example.com'
duration_in_seconds = 300  # Duration for which the url is valid
expires = int(time() + duration_in_seconds)
path = '/v1/your-bucket/your-object'
key = 'secret'
hmac_body = '%s\n%s\n%s' % (method, expires, path)
hmac_body = hmac.new(key, hmac_body, sha1).hexdigest()
sig = hmac.new(key, hmac_body, sha1).hexdigest()
rest_uri = "{host}{path}?temp_url_sig={sig}&temp_url_expires={expires}".format(
     host=host, path=path, sig=sig, expires=expires)
print rest_uri

출력 예

https://objectstore.example.com/v1/your-bucket/your-object?temp_url_sig=ff4657876227fc6025f04fcf1e82818266d022c6&temp_url_expires=1423200992

4.7.2. Swift POST 임시 URL 키

필수 키가 있는 swift 계정에 대한 POST 요청은 계정에 임시 URL 액세스를 제공할 수 있는 계정에 대한 시크릿 임시 URL 키를 설정합니다. 최대 두 개의 키가 지원되며 서명은 두 키 모두에 대해 확인되므로 임시 URL을 무효화하지 않고 키를 순환할 수 있습니다.

구문

POST /API_VERSION/ACCOUNT HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME
X-Auth-Token: AUTH_TOKEN

요청 헤더

X-Account-Meta-Temp-URL-Key
설명
임의의 문자열 값을 사용하는 사용자 정의 키입니다.
유형
문자열
필수 항목
있음
X-Account-Meta-Temp-URL-Key-2
설명
임의의 문자열 값을 사용하는 사용자 정의 키입니다.
유형
문자열
필수 항목
없음
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.