Archive Storage API
  • PDF

Archive Storage API

  • PDF

개요

네이버 클라우드 플랫폼 Archive Storage는 스토리지 관리와 사용에 필요한 OpenStack Swift API를 제공합니다.

버전: 2.15.1 (Pike)

지원하는 Archive Storage API

어카운트 오퍼레이션

어카운트에 속한 컨테이너(버킷) 목록 조회, 메타데이터 조회, 메타데티어 설정을 조회하는 오퍼레이션을 설명합니다.
어카운트는 고유의 project ID를 사용하고 Archive Storage 콘솔에서 이용 신청 후 [API 이용 정보 확인] 버튼을 통해 확인할 수 있습니다.

오퍼레이션 설명
GET 어카운트에 속한 컨테이너(버킷) 목록 조회
HEAD 어카운트의 메타데이터 조회
POST 어카운트에 메타데이터 설정 및 변경

컨테이너(버킷) 오퍼레이션

컨테이너(버킷)을 생성, 삭제, 조회, 제어하는 오퍼레이션을 설명합니다.

오퍼레이션 설명
PUT 컨테이너(버킷) 생성
GET 컨테이너(버킷)에 속한 오브젝트 목록 조회
HEAD 컨테이너(버킷)의 메타데이터 조회
POST 컨테이너(버킷)에 메타데이터를 설정 및 변경
DELETE 빈 컨테이너(버킷) 삭제

오브젝트 오퍼레이션

오브젝트를 생성, 삭제, 조회, 제어하는 오퍼레이션을 설명합니다.

오퍼레이션 설명
PUT 오브젝트 업로드. 동일한 이름의 오브젝트가 있을 경우 덮어쓰기
COPY 다른 위치에 있는 오브젝트 복제
GET 오브젝트 다운로드
HEAD 오브젝트의 메타데이터 조회
POST 오브젝트에 메타데이터를 설정 및 변경
DELETE 오브젝트 삭제

Archive Storage 인증 관리

네이버 클라우드 플랫폼 Archive Storage는 OpenStack Keystone V3 API를 이용하여 인증하고 토큰을 생성할 수 있습니다. 생성된 토큰은 어카운트, 컨테이너, 오브젝트 오퍼레이션 이용 시 X-Auth-Token 헤더 값으로 입력하여 사용합니다.

버전: v3.8

문서 : https://developer.openstack.org/api-ref/identity/v3/

password 인증 방식을 사용하여 토큰을 생성하고, 포탈 마이페이지 > 계정 관리 > 인증키 관리에서 생성한 API 인증키 정보 중 Access Key ID는 user name, Secret Key는 user password로 사용합니다.
토큰 생성 시 project 범위로 한정(scope)은 필수이며 project ID와 domain ID는 Archive Storage 콘솔에서 이용 신청 후 [API 이용 정보 확인] 버튼을 통해 확인할 수 있습니다.

1. 인증키 생성
2. 호출 도메인 확인
3. 토큰 생성
4. 토큰 삭제

인증키 생성

NAVER CLOUD PLATFORM 계정이 생성되면 기본적으로 인증키가 한개 발급됩니다. 발급된 인증키는 네이버 클라우드 플랫폼 홈페이지[마이페이지] > [계정관리] > [인증키관리] 에서 확인할 수 있습니다. 인증키는 계정 생성 시 자동으로 발급되는 것 외에 사용자가 하나 더 생성할 수 있어서 두 개까지 발급받을 수 있습니다.

참고

인증키를 '사용 중지'로 설정하거나 삭제하면 유효하지 않은 키로 인식됩니다.

API 인증키는 Access Key ID(user name)와 Secret Key(user password) 한 쌍으로 구성되어 있습니다. 한 쌍의 API 인증키는 API를 인증할 때 파라미터로 직접 전달됩니다.

  1. 네이버 클라우드 플랫폼 홈페이지에서 로그인을 합니다.
  2. [마이페이지] > [계정관리] > [인증키관리] 메뉴로 접속하시면 [신규 API 인증키 생성] 버튼을 클릭합니다.
    • 기존에 생성하신 인증키가 있으실 경우에는 해당 인증키를 사용하실 수 있습니다.
  3. API 인증키 관리에서 발급받은 자신의 Access Key ID와 Secret Key를 확인합니다.

호출 도메인 확인

HTTP/HTTPS 프로토콜을 모두 지원하지만 데이터 보호를 위해 HTTPS 사용을 권장합니다.

리전 인증 URL 서비스 URL
한국 https://kr.archive.ncloudstorage.com:5000 https://kr.archive.ncloudstorage.com

토큰 생성

네이버 클라우드 플랫폼 Archive Storage는 OpenStack Keystone V3 API를 이용하여 인증하고 토큰을 생성할 수 있습니다. 생성된 토큰은 어카운트, 컨테이너, 오브젝트 오퍼레이션 이용 시 X-Auth-Token 헤더 값으로 입력하여 사용합니다.

버전: v3.8

문서 : https://developer.openstack.org/api-ref/identity/v3/

password 인증 방식을 사용하여 토큰을 생성하고, 포탈 마이페이지 > 계정 관리 > 인증키 관리에서 생성한 API 인증키 정보 중 Access Key ID는 user name, Secret Key는 user password로 사용합니다.
토큰 생성 시 project 범위로 한정(scope)은 필수이며 project ID와 domain ID는 Archive Storage 콘솔에서 이용 신청 후 [API 이용 정보 확인] 버튼을 통해 확인할 수 있습니다.

토큰의 유효 시간은 24시간이고 토큰 삭제 요청을 통해 이용을 중지시킬 수 있습니다.

구문

POST /v3/auth/tokens

요청

Name In Type Description
auth body object auth 오브젝트
identity body object identity 오브젝트
methods body array 인증 방식. password 인증 방식 사용
password body object password 오브젝트
user body object user 오브젝트. id, password, domain 입력 필수
domain body object domain 오브젝트. id를 입력해서 사용하고, domain ID는 Archive Storage 콘솔의 [API 이용 정보 확인] 버튼을 통해 확인
scope body object scope 오브젝트. 토큰 사용 범위를 project로 지정하여 사용
project body object project 오브젝트. id를 입력해서 사용하고, project ID는 Archive Storage 콘솔의 [API 이용 정보 확인] 버튼을 통해 확인

응답

Name In Type Description
X-Subject-Token header string 생성된 토큰. 토큰 값은 request body가 아닌 헤더로 전달
token body object token 오브젝트
methods body array 인증 방식. password 인증 방식 사용
roles body array role 정보 목록. id, name 정보 포함
expires_at body string 토큰 만료 일시. YYYY-MM-DDThh:mm:ss.sssZ (ISO 8601). 토큰 만료 일시가 null 일 경우 만료되지 않음
issued_at body string 토큰 생성 일시. YYYY-MM-DDThh:mm:ss.sssZ (ISO 8601)
project body object project 오브젝트. domain, id, name 정보 포함
catalog body array catalog 오브젝트
endpoints body array endpoint 정보 목록
region_id body string 서비스 endpoint가 속한 리전 정보
url body string endpoint URL.
interface body string 인터페이스 타입. admin 타입은 admin 권한이 있는 유저만 사용가능
type body string endpoint 타입
audit_ids body array 랜덤으로 생성되는 고유의 값으로 토큰 정보를 조회할 때 사용

예시

요청 예시

curl -i -X POST -H "Content-Type: application/json" https://kr.archive.ncloudstorage.com:5000/v3/auth/tokens -d '
{
    "auth": {
        "identity": {
            "methods": [
                "password"
            ],
            "password": {
                "user": {
                    "name": "{access_key_id}",
                    "password": "{secret_key}",
                    "domain": {
                        "id": "{domain_id}"
                    }
                }
            }
        },
        "scope": {
            "project": {
                "id": "{project_id}"
            }
        }
    }
}'

응답 예시

HTTP/1.1 201 Created
Date: Mon, 17 Sep 2018 23:46:11 GMT
Server: Apache/2.4.6 (Red Hat Enterprise Linux) OpenSSL/1.0.1e-fips mod_wsgi/3.4 Python/2.7.5
X-Subject-Token: gAAAAABboDzDOzds2V_2uzR9xn-AQkg5RRejRkGD9L5NuhwezSqqxpmY8ZNl48vYnC1GCn21AiffNtRrDedbvVq2usnPDH2qIp-Cq2Rx54fnH406NhhW9OiaKMzFwRzS7-js3j4xGMvEk2bPErmolAT4E1Du0vsF2azycC6sNcIMsVWcvd
Vary: X-Auth-Token
x-openstack-request-id: req-40a163b1-1fcc-423d-8ec3-3f40fd413ab6
Content-Length: 1759
Content-Type: application/json
{
    "token": {
        "is_domain": false,
        "methods": [
            "password"
        ],
        "roles": [
            {
                "id": "488fac210a714fcc91b61a32525b5693",
                "name": "user"
            }
        ],
        "expires_at": "2018-09-18T23:46:11.000000Z",
        "project": {
            "domain": {
                "id": "default",
                "name": "Default"
            },
            "id": "0a11d053d4804b4c86d26ae1ff48dc1e",
            "name": "ncp-test-0"
        },
        "catalog": [
            {
                "endpoints": [
                    {
                        "region_id": null,
                        "url": "https://kr.archive.ncloudstorage.com:5000/v3",
                        "region": null,
                        "interface": "public",
                        "id": "3bf62632266c4be0880cd7170ca90f55"
                    },
                    {
                        "region_id": null,
                        "url": "https://kr.archive.ncloudstorage.com:35357/v3",
                        "region": null,
                        "interface": "admin",
                        "id": "a29ce505b6cb429ea9ca15cb126251f7"
                    },
                    {
                        "region_id": null,
                        "url": "https://kr.archive.ncloudstorage.com:35357/v3",
                        "region": null,
                        "interface": "internal",
                        "id": "e524bcde8c5a4eec8750acf3e5819d69"
                    }
                ],
                "type": "identity",
                "id": "ae1a92e6b64f4e9886517aaca2540b26",
                "name": "keystone"
            },
            {
                "endpoints": [
                    {
                        "region_id": "RegionOne",
                        "url": "https://kr.archive.ncloudstorage.com/v1/AUTH_0a11d053d4804b4c86d26ae1ff48dc1e",
                        "region": "RegionOne",
                        "interface": "internal",
                        "id": "80773860110449b9b78dc3a05f3f6360"
                    },
                    {
                        "region_id": "RegionOne",
                        "url": "https://kr.archive.ncloudstorage.com/v1/AUTH_0a11d053d4804b4c86d26ae1ff48dc1e",
                        "region": "RegionOne",
                        "interface": "public",
                        "id": "40f7102a57024603a53f41c4d8cb7cf3"
                    },
                    {
                        "region_id": "RegionOne",
                        "url": "https://kr.archive.ncloudstorage.com",
                        "region": "RegionOne",
                        "interface": "admin",
                        "id": "5297ae442163478e82f6f9630919b93f"
                    }
                ],
                "type": "object-store",
                "id": "fb4cbd0bf18f4beb9ac29b09f0862ce2",
                "name": "swift"
            }
        ],
        "user": {
            "password_expires_at": null,
            "domain": {
                "id": "default",
                "name": "Default"
            },
            "id": "ac1eca9c1b9f4900a0b1c4a82be49686",
            "name": "qQXiRLju7XHMXpmEskHn"
        },
        "audit_ids": [
            "U-O5n4rBSoO5jBykNXYNsw"
        ],
        "issued_at": "2018-09-17T23:46:11.000000Z"
    }
}

토큰 삭제

구문

DELETE /v3/auth/tokens

요청

Name In Type Description
X-Auth-Token header string 인증을 위한 유효한 토큰
X-Subject-Token header string 삭제 대상 토큰. 요청이 성공하는 즉시 이용할 수 없게 됨

예시

요청 예시

curl -i -X DELETE -H "X-Auth-Token: $token" -H "X-Subject-Token: $token_to_delete" https://kr.archive.ncloudstorage.com:5000/v3/auth/tokens

응답 예시

HTTP/1.1 204 No Content
Date: Tue, 18 Sep 2018 05:44:00 GMT
Server: Apache/2.4.6 (Red Hat Enterprise Linux) OpenSSL/1.0.1e-fips mod_wsgi/3.4 Python/2.7.5
Vary: X-Auth-Token
x-openstack-request-id: req-b6e8efbe-c3f2-41bc-8ca5-1067753318d4
Content-Type: text/plain; charset=UTF-8

요청이 성공하게 되면 No Content (204) 상태 코드를 응답합니다.


이 글이 도움이 되었나요?

What's Next