Archive Storage 개요

Prev Next

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

버전: 2.15.1 (Pike)

참고

Subaccount의 경우 일부 API는 기존 호출 도메인이 아닌 Subaccount 전용 External API Gateway를 통해 사용할 수 있습니다.

호출 도메인(Endpoint)

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

리전별 URL

리전 인증 URL 서비스 URL
공공 https://kr.archive.gov-ncloudstorage.com:5000 https://kr.archive.gov-ncloudstorage.com
공공 https://archivestorage.apigw.gov-ntruss.com https://archivestorage.apigw.gov-ntruss.com

인증

네이버 클라우드 플랫폼[공공기관용] Archive Storage는 인증 정보를 통해 토큰을 생성하고, 발급된 토큰으로 서비스를 이용할 수 있습니다.
토큰 생성에 필요한 유저 정보는 콘솔의 My Account > 계정 및 보안 관리 > 보안 관리 > 접근 관리 메뉴에서 생성한 API 인증키를 사용합니다. (Access Key ID는 user name, Secret Key는 user password)
유저가 속한 Project ID와 Domain ID 정보는 Archive Storage 콘솔에서 이용 신청 후 [API 이용 정보 확인] 버튼을 통해 확인할 수 있습니다.

토큰 생성

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

참고

OpenStack Keystone V3 API에 대한 자세한 내용은 https://developer.openstack.org/api-ref/identity/v3/를 참고해 주십시오.

password 인증 방식을 사용하여 토큰을 생성하고, 네이버 클라우드 플랫폼 콘솔의 My Account > 계정 및 보안 관리 > 보안 관리 > 접근 관리 메뉴에서 생성한 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 이용 정보 확인] 버튼을 클릭하여 확인

요청 예시는 다음과 같습니다.

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}"
            }
        }
    }
}'

응답

응답 파라미터는 다음과 같습니다.

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 랜덤으로 생성되는 고유의 값으로 토큰 정보를 조회할 때 사용

응답 예시는 다음과 같습니다.

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

응답

요청이 성공하게 되면 No Content (204) 상태 코드로 응답합니다. 응답 예시는 다음과 같습니다.

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

오퍼레이션

어카운트 오퍼레이션

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

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

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

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

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

오브젝트 오퍼레이션

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

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