검색

4.5. Swift 오브젝트 작업

download PDF

개발자는 Ceph Object Gateway를 통해 Swift API(애플리케이션 프로그래밍 인터페이스)를 사용하여 오브젝트 작업을 수행할 수 있습니다. 오브젝트를 나열, 생성, 업데이트 및 삭제할 수 있습니다. 오브젝트의 메타데이터를 추가하거나 업데이트할 수도 있습니다.

사전 요구 사항

  • 실행 중인 Red Hat Ceph Storage 클러스터.
  • RESTful 클라이언트입니다.

4.5.1. Swift 오브젝트 작업

오브젝트는 데이터 및 메타데이터를 저장하기 위한 컨테이너입니다. 컨테이너에 많은 오브젝트가 있을 수 있지만 오브젝트 이름은 고유해야 합니다. 이 API를 사용하면 클라이언트는 오브젝트를 생성하고, 액세스 제어 및 메타데이터를 설정하고, 오브젝트의 데이터 및 메타데이터를 검색하고, 오브젝트를 삭제할 수 있습니다. 이 API는 특정 사용자 계정의 정보와 관련된 요청을 수행하기 때문에 이 API의 모든 요청을 인증해야 합니다. 컨테이너 또는 오브젝트의 액세스 제어가 의도적으로 공개적으로 액세스되지 않는 한, 이는 익명 요청을 허용합니다.

4.5.2. Swift에서 오브젝트를 가져옵니다.

오브젝트를 검색하려면 API 버전, 계정, 컨테이너 및 오브젝트 이름을 사용하여 GET 요청을 만듭니다. 컨테이너 내의 오브젝트를 검색하려면 컨테이너에 대한 읽기 권한이 있어야 합니다.

구문

GET /API_VERSION/ACCOUNT/TENANT:CONTAINER/OBJECT HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME
X-Auth-Token: AUTH_TOKEN

요청 헤더

범위
설명
오브젝트 콘텐츠의 하위 집합을 검색하려면 바이트 범위를 지정할 수 있습니다.
유형
날짜
필수 항목
없음
if- Cryostat-Since
설명
소스 오브젝트의 last_modified 속성의 날짜 및 시간 이후 수정된 경우에만 복사합니다.
유형
날짜
필수 항목
없음
if-Unmodified-Since
설명
소스 오브젝트의 last_modified 속성의 날짜와 시간 이후 수정되지 않은 경우에만 복사합니다.
유형
날짜
필수 항목
없음
copy-If-Match
설명
요청의 ETag가 소스 오브젝트의 ETag와 일치하는 경우에만 복사합니다.
유형
etag
필수 항목
없음
copy-If-None-Match
설명
요청의 ETag 가 소스 오브젝트의 ETag와 일치하지 않는 경우에만 복사합니다.
유형
etag
필수 항목
없음

응답 헤더

content-Range
설명
오브젝트 콘텐츠 하위 집합의 범위입니다. request에 range 헤더 필드가 지정된 경우에만 반환됩니다.

4.5.3. Swift에서 오브젝트를 생성하거나 업데이트합니다.

새 오브젝트를 생성하려면 API 버전, 계정, 컨테이너 이름 및 새 오브젝트 이름을 사용하여 PUT 요청을 만듭니다. 오브젝트를 생성하거나 업데이트하려면 컨테이너에 대한 쓰기 권한이 있어야 합니다. 오브젝트 이름은 컨테이너 내에서 고유해야 합니다. PUT 요청은 멱등이 아니므로 고유한 이름을 사용하지 않으면 요청이 오브젝트를 업데이트합니다. 그러나 오브젝트 이름에 pseudo-hierarchical 구문을 사용하여 다른 pseudo-hierarchical 디렉터리 아래에 있는 경우 동일한 이름의 다른 오브젝트와 구별할 수 있습니다. 요청에 액세스 제어 헤더 및 메타데이터 헤더를 포함할 수 있습니다.

구문

PUT /API_VERSION/ACCOUNT/TENANT:CONTAINER HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME
X-Auth-Token: AUTH_TOKEN

요청 헤더

etag
설명
오브젝트 콘텐츠의 MD5 해시입니다. 권장됨.
유형
문자열
유효한 값
해당 없음
필수 항목
없음
content-Type
설명
오브젝트 콘텐츠의 MD5 해시입니다.
유형
문자열
유효한 값
해당 없음
필수 항목
없음
transfer-Encoding
설명
개체가 더 큰 집계 개체의 일부인지 여부를 나타냅니다.Indicates whether the object is part of a larger aggregate object.
유형
문자열
유효한 값
청크
필수 항목
없음

4.5.4. Swift 오브젝트 삭제

오브젝트를 삭제하려면 API 버전, 계정, 컨테이너 및 오브젝트 이름을 사용하여 DELETE 요청을 만듭니다. 해당 오브젝트를 삭제하려면 컨테이너에 대한 쓰기 권한이 있어야 합니다. 오브젝트를 성공적으로 삭제하면 오브젝트 이름을 재사용할 수 있습니다.

구문

DELETE /API_VERSION/ACCOUNT/TENANT:CONTAINER/OBJECT HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME
X-Auth-Token: AUTH_TOKEN

4.5.5. Swift에서 오브젝트 복사

오브젝트를 복사하면 오브젝트의 서버 측 복사본을 만들 수 있으므로 다른 컨테이너에서 다운로드하여 업로드할 필요가 없습니다. 한 오브젝트의 콘텐츠를 다른 오브젝트로 복사하려면 API 버전, 계정 및 컨테이너 이름을 사용하여 PUT 요청 또는 COPY 요청을 수행할 수 있습니다.

PUT 요청의 경우 요청에 있는 대상 컨테이너 및 오브젝트 이름과 요청 헤더의 소스 컨테이너 및 오브젝트를 사용합니다.

복사 요청의 경우 요청에서 소스 컨테이너 및 오브젝트와 요청 헤더에 있는 대상 컨테이너 및 오브젝트를 사용합니다. 오브젝트를 복사하려면 컨테이너에 대한 쓰기 권한이 있어야 합니다. 대상 오브젝트 이름은 컨테이너 내에서 고유해야 합니다. 요청은 멱등이 아니므로 고유한 이름을 사용하지 않으면 요청이 대상 오브젝트를 업데이트합니다. 오브젝트 이름에 pseudo-hierarchical 구문을 사용하여 대상 오브젝트가 다른 pseudo-hierarchical 디렉터리 아래에 있는 경우 동일한 이름의 소스 오브젝트와 구별할 수 있습니다. 요청에 액세스 제어 헤더 및 메타데이터 헤더를 포함할 수 있습니다.

구문

PUT /API_VERSION/ACCOUNT/TENANT:CONTAINER HTTP/1.1
X-Copy-From: TENANT:SOURCE_CONTAINER/SOURCE_OBJECT
Host: FULLY_QUALIFIED_DOMAIN_NAME
X-Auth-Token: AUTH_TOKEN

또는 다음을 수행합니다.

구문

COPY /API_VERSION/ACCOUNT/TENANT:SOURCE_CONTAINER/SOURCE_OBJECT HTTP/1.1
Destination: TENANT:DEST_CONTAINER/DEST_OBJECT

요청 헤더

X-Copy-From
설명
PUT 요청과 함께 소스 컨테이너/오브젝트 경로를 정의합니다.
유형
문자열
필수 항목
예, PUT 을 사용하는 경우입니다.
대상
설명
COPY 요청과 함께 사용하여 대상 컨테이너/오브젝트 경로를 정의합니다.
유형
문자열
필수 항목
예, COPY 를 사용하는 경우 .
if- Cryostat-Since
설명
소스 오브젝트의 last_modified 속성의 날짜 및 시간 이후 수정된 경우에만 복사합니다.
유형
날짜
필수 항목
없음
if-Unmodified-Since
설명
소스 오브젝트의 last_modified 속성의 날짜와 시간 이후 수정되지 않은 경우에만 복사합니다.
유형
날짜
필수 항목
없음
copy-If-Match
설명
요청의 ETag가 소스 오브젝트의 ETag와 일치하는 경우에만 복사합니다.
유형
etag
필수 항목
없음
copy-If-None-Match
설명
요청의 ETag 가 소스 오브젝트의 ETag와 일치하지 않는 경우에만 복사합니다.
유형
etag
필수 항목
없음

4.5.6. Swift get 오브젝트 메타데이터

오브젝트의 메타데이터를 검색하려면 API 버전, 계정, 컨테이너 및 오브젝트 이름을 사용하여 HEAD 요청을 만듭니다. 컨테이너 내의 오브젝트에서 메타데이터를 검색하려면 컨테이너에 대한 읽기 권한이 있어야 합니다. 이 요청은 오브젝트 자체에 대한 요청과 동일한 헤더 정보를 반환하지만 오브젝트의 데이터를 반환하지는 않습니다.

구문

HEAD /API_VERSION/ACCOUNT/TENANT:CONTAINER/OBJECT HTTP/1.1
Host: FULLY_QUALIFIED_DOMAIN_NAME
X-Auth-Token: AUTH_TOKEN

4.5.7. Swift 오브젝트 메타데이터 추가 또는 업데이트

오브젝트에 메타데이터를 추가하려면 API 버전, 계정, 컨테이너 및 오브젝트 이름을 사용하여 POST 요청을 만듭니다. 메타데이터를 추가하거나 업데이트하려면 상위 컨테이너에 대한 쓰기 권한이 있어야 합니다.

구문

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

요청 헤더

X-Object-Meta-KEY
설명
임의의 문자열 값을 사용하는 사용자 정의 메타 데이터 키입니다.
유형
문자열
필수 항목
없음
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.