오브젝트 오퍼레이션
오브젝트 다운로드 및 메타데이터 조회
구문
GET /v1/AUTH_{project_id}/{container}/{object}
Response Header를 통해 오브젝트 메타데이터를 응답받고, Response Body를 통해 오브젝트 내용을 다운로드합니다. 만약 대용량 오브젝트인 경우, Response Body는 세그먼트 오브젝트의 연결 내용을 포함합니다. Static 대용량 오브젝트에 대한 매니페스트를 가져오려면 multipart-manifest 파라미터를 사용하시면 됩니다.
요청 예
curl -i -X GET -H "X-Auth-Token: $token" https://kr.archive.ncloudstorage.com/v1/AUTH_{project_id}/{container}/{object}
응답 예
HTTP/1.1 200 OK
Content-Length: 210012
Accept-Ranges: bytes
Last-Modified: Tue, 11 Sep 2018 02:12:30 GMT
Etag: 9bd5b4f25faf491080654a34d57c3636
X-Timestamp: 1536631949.99141
Content-Type: text/plain
X-Trans-Id: tx9b5c78b06d0f41c5bd4bf-005b989fb7
X-Openstack-Request-Id: tx9b5c78b06d0f41c5bd4bf-005b989fb7
Date: Wed, 12 Sep 2018 05:10:15 GMT
요청이 성공하게 되면 OK (200) 상태 코드를 응답합니다. Range 파라미터를 통해 오브젝트 내용의 일부분의 요청이 성공하게 되면 Partial Content (206) 상태코드를 응답합니다. 해당 오브젝트가 없으면 Not Found (400) 상태코드를 응답합니다.
요청 파라미터
Name | In | Type | Description |
---|---|---|---|
project_id (Optional) | path | string | 프로젝트 ID 값을 입력합니다. |
container (Optional) | path | string | 컨테이너(버킷) 이름을 입력합니다. |
object (Optional) | path | string | 오브젝트의 이름을 입력합니다. |
X-Auth-Token (Optional) | header | string | 발급한 Token 값을 입력합니다. |
X-Newest (Optional) | header | boolean | true인 경우, 모든 복제본에 대해 질의를 하고 가장 최근 복제본의 정보로 응답합니다. 해당 헤더가 생략된 경우, 가장 응답이 빠른 정보로 응답합니다. |
temp_url_sig | query | string | temporary url |
temp_url_expires | query | integer | temporary url |
filename (Optional) | query | string | temporary url |
multipart-manifest (Optional) | query | string | 해당 오브젝트가 대용량 오브젝트이고 (X-Static-Large-Object: True) 해당 파라미터가 True인 경우, 세그먼트 오브젝트들의 연결 정보로 응답합니다. |
Range (Optional) | header | string | 대상 오브젝트의 범위를 지정하여 호출합니다. Range: Bytes=-5 (마지막 5Bytes) Range: Bytes=-6 (6Byte 이후부터 Range: Bytes=10-15 (10Byte부터 6Bytes) Range: Bytes=10-15, -5 (10Bytes부터 6Bytes, 마지막 5Bytes, Content-Type이 multipart/byteranges) |
If-Match (Optional) | header | string | ETag 조건 헤더입니다. 자세한 정보는 해당 링크에서 확인 : RFC2616 |
If-None-Match (Optional) | header | string | ETag 조건 헤더입니다. 자세한 정보는 해당 링크에서 확인 : RFC2616 |
If-Modified-Since (Optional) | header | string | Last-Modified 조건 헤더입니다. 자세한 정보는 해당 링크에서 확인 : RFC2616 |
If-Unmodified-Since (Optional) | header | string | Last-Modified 조건 헤더입니다. 자세한 정보는 해당 링크에서 확인 : RFC2616 |
응답 파라미터
Name | In | Type | Description |
---|---|---|---|
Content-Length | header | string | 응답 결과의 길이입니다. (Bytes) |
Content-Type | header | string | 응답 결과의 MIME 타입입니다. |
X-Object-Meta-name (Optional) | header | string | 해당 오브젝트의 메타데이터입니다. 헤더명의 name 부분이 메타데이터의 키 역할을 합니다. |
Content-Disposition (Optional) | header | string | 브라우저에 대한 작동을 재정의 합니다. |
Content-Encoding (Optional) | header | string | 해당 오브젝트의 인코딩 방식입니다. |
X-Delete-At (Optional) | header | integer | 해당 오브젝트의 삭제 예정 시간입니다. (Unix Epoch timestamp) |
Accept-Ranges | header | string | 해당 오브젝트가 허용하는 Range 타입입니다. |
X-Object-Manifest (Optional) | header | string | 대용량 오브젝트(DLO) 매니페스트입니다. 형태는 {container}/{prefix}입니다. |
Last-Modified | header | string | 해당 오브젝트가 수정된 가장 최근 시간입니다. (UTC) |
ETag | header | string | ETag 헤더 값입니다. |
X-Timestamp | header | integer | 해당 오브젝트가 처음으로 생성된 시각입니다. (UNIX Time) |
X-Trans-Id | header | string | 해당 요청의 트랜젝션 ID입니다. |
X-Openstack-Request-Id | header | string | 해당 요청의 트랜젝션 ID입니다. (X-Trans-Id와 동일합니다.) |
Date | header | string | 해당 요청의 응답 시간입니다. (UTC) |
X-Static-Large-Object | header | boolean | 대용량 오브젝트(SLO) 여부입니다. |
오브젝트 생성 및 변경
구문
PUT /v1/AUTH_{project_id}/{container}/{object}
오브젝트의 내용과 메타데이터를 생성 및 변경합니다.
기존에 있는 오브젝트는 덮어쓰고 기존에 있는 메타데이터는 변경합니다.
요청 예
curl -i -X PUT -H "X-Auth-Token: $token" -T "/FILE_PATH/OBJECT" https://kr.archive.ncloudstorage.com/v1/AUTH_{project_id}/{container}/{object}
응답 예
HTTP/1.1 201 Created
Last-Modified: Mon, 17 Sep 2018 07:36:47 GMT
Content-Length: 0
Etag: 95444a08aec383972a52eaaac43e6dce
Content-Type: text/html; charset=UTF-8
X-Trans-Id: txe5ad93db05334b1cb44d2-005b9f598e
X-Openstack-Request-Id: txe5ad93db05334b1cb44d2-005b9f598e
Date: Mon, 17 Sep 2018 07:36:46 GMT
요청이 성공하게 되면 Created (201) 상태 코드를 응답합니다. 요청이 Timeout이 되면 Request Timeout (408) 상태 코드를 응답합니다.
요청 파라미터
Name | In | Type | Description |
---|---|---|---|
project_id (Optional) | path | string | 프로젝트 ID를 입력합니다. |
container (Optional) | path | string | 컨테이너(버킷) 이름을 입력합니다. |
object (Optional) | path | string | 오브젝트의 이름을 입력합니다. |
multipart-manifest (Optional) | query | string | multipart-manifest=put인 경우, 해당 오브젝트는 대용량 오브젝트(SLO) 매니페스트로 인식합니다. 요청의 body 부분에 매니페스트 내용을 포함시켜야 합니다. |
temp_url_sig | query | string | temp url |
temp_url_expires | query | integer | temp url |
X-Object-Manifest (Optional) | header | string | 대용량 오브젝트(DLO) 매니페스트를 입력합니다. 포맷은{container}/{prefix}입니다. |
X-Auth-Token (Optional) | header | string | 발급한 Token 값을 입력합니다 |
Content-Length (Optional) | header | integer | 해당 오브젝트의 크기를 입력합니다. chunked transfer encoding을 사용하시는 경우, 설정하지 않으시면 됩니다. |
Transfer-Encoding (Optional) | header | string | chunked transfer encoding 사용하도록 설정합니다. 사용하는 경우, Content-Length 헤더를 0이 아닌 값으로 설정하시면 안됩니다. |
Content-Type (Optional) | header | string | 해당 오브젝트의 MIME 타입을 입력합니다. |
X-Detect-Content-Type (Optional) | header | boolean | true인 경우, 파일 확장자를 기반으로 Content-Type를 결정합니다. Content-Type 옵션보다 우선합니다. |
X-Copy-From (Optional) | header | string | 오브젝트를 복사 합니다. 해당 헤더의 값은 {container}/{object}입니다. Range 헤더와 조합 가능합니다. |
X-Copy-From-Account (Optional) | header | string | 다른 어카운트로부터 오브젝트를 복사합니다 |
ETag (Optional) | header | string | ETag 헤더 값입니다. |
Content-Disposition (Optional) | header | string | 브라우저에 대한 작동을 재정의 합니다. |
Content-Encoding (Optional) | header | string | 해당 오브젝트의 인코딩 방식입니다. |
X-Delete-At (Optional) | header | integer | 해당 오브젝트의 삭제 시간을 입력합니다. (Unix Epoch timestamp) |
X-Delete-After (Optional) | header | integer | 해당 시간 이후에 해당 오브젝트를 삭제합니다. (seconds) |
X-Object-Meta-name (Optional) | header | string | 해당 오브젝트의 메타데이터를 설정합니다. 헤더명의 name 부분이 메타데이터의 키 역할을 합니다. 추가, 업데이트, 삭제가 가능하며, 삭제는 빈 값으로 요청하시면 됩니다. |
If-None-Match (Optional) | header | string | ETag 조건 헤더입니다. 자세한 정보는 해당 링크에서 확인 : RFC2616 |
응답 파라미터
Name | In | Type | Description |
---|---|---|---|
Content-Length | header | string | 응답 결과의 길이입니다. (Bytes) |
ETag | header | string | ETag 헤더 값입니다. |
X-Trans-Id | header | string | 해당 요청의 트랜젝션 ID입니다. |
X-Openstack-Request-Id | header | string | 해당 요청의 트랜젝션 ID입니다. (X-Trans-Id와 동일합니다.) |
Date | header | string | 해당 요청의 응답 시간입니다. (UTC) |
Content-Type | header | string | 응답 결과의 MIME 타입입니다. |
last_modified | header | string | 해당 오브젝트가 수정된 가장 최근 시간입니다. (UTC) |
오브젝트 복사
구문
COPY /v1/AUTH_{project_id}/{container}/{object}
요청 예
curl -i -X COPY -H "X-Auth-Token: $token" -H "Destination: $copy_destination" https://kr.archive.ncloudstorage.com/v1/AUTH_{project_id}/{container}/{object}
응답 예
HTTP/1.1 201 Created
Last-Modified: Mon, 17 Sep 2018 08:21:36 GMT
Content-Length: 0
Etag: f1c9645dbc14efddc7d8a322685f26eb
Content-Type: text/html; charset=UTF-8
X-Copied-From-Account: AUTH_{project_id}
X-Copied-From-Last-Modified: Mon, 17 Sep 2018 07:43:40 GMT
X-Copied-From: ncloud-container-0/ncloud-object-0
X-Trans-Id: tx851b895d7fcf47f987a5a-005b9f640f
X-Openstack-Request-Id: tx851b895d7fcf47f987a5a-005b9f640f
Date: Mon, 17 Sep 2018 08:21:35 GMT
오브젝트를 복사합니다. 요청이 성공하게 되면 Created (201) 상태 코드를 응답합니다.
요청 파라미터
Name | In | Type | Description |
---|---|---|---|
project_id (Optional) | path | string | 프로젝트 ID를 입력합니다. |
container (Optional) | path | string | 컨테이너(버킷) 이름을 입력합니다. |
object (Optional) | path | string | 오브젝트의 이름을 입력합니다. |
multipart-manifest (Optional) | query | string | multipart-manifest=get인 경우, 해당 오브젝트는 대용량 오브젝트(SLO)로 인식합니다. 해당 오브젝트의 내용은 복사되지 않고, 매니페스트가 복사됩니다. |
X-Auth-Token (Optional) | header | string | 발급한 Token 값을 입력합니다 |
Content-Type (Optional) | header | string | 해당 오브젝트의 MIME 타입을 입력합니다. |
Content-Encoding (Optional) | header | string | 해당 오브젝트의 인코딩 방식입니다. |
Content-Disposition (Optional) | header | string | 브라우저에 대한 작동을 재정의 합니다. |
X-Object-Meta-{name} (Optional) | header | string | 해당 오브젝트의 메타데이터를 설정합니다. 헤더명의 name 부분이 메타데이터의 키 역할을 합니다. 추가, 업데이트, 삭제가 가능하며, 삭제는 빈 값으로 요청하시면 됩니다. |
X-Fresh-Metadata (Optional) | header | boolean | true인 경우 메타데이터는 생략하고 오브젝트만 복사합니다. 디폴트 값은 false입니다 |
응답 파라미터
Name | In | Type | Description |
---|---|---|---|
Content-Length | header | string | 응답 결과의 길이입니다. (Bytes) |
X-Copied-From-Last-Modified (Optional) | header | integer | 원본 오브젝트의 last_modified 헤더 값입니다. |
X-Copied-From (Optional) | header | string | 원본 오브젝트의 경로입니다. |
X-Copied-From-Account (Optional) | header | string | 원본 오브젝트의 어카운트입니다. |
Last-Modified | header | string | 복사 오브젝트가 수정된 가장 최근 시간입니다. (UTC) |
ETag | header | string | ETag 조건 헤더입니다. 자세한 정보는 해당 링크에서 확인 : RFC2616 |
X-Trans-Id | header | string | 해당 요청의 트랜젝션 ID입니다. |
X-Openstack-Request-Id | header | string | 해당 요청의 트랜젝션 ID입니다. (X-Trans-Id와 동일합니다.) |
Date | header | string | 해당 요청의 응답 시간입니다. (UTC) |
Content-Type | header | string | 응답 결과의 MIME 타입입니다. |
오브젝트 삭제
구문
DELETE /v1/AUTH_{project_id}/{container}/{object}
요청 예
curl -i -X DELETE -H "X-Auth-Token: $token" https://kr.archive.ncloudstorage.com/v1/AUTH_{project_id}/{container}/{object}
응답 예
HTTP/1.1 204 No Content
Content-Length: 0
Content-Type: text/html; charset=UTF-8
X-Trans-Id: tx1fe22f08d64b4cf48a1fa-005b9f6647
X-Openstack-Request-Id: tx1fe22f08d64b4cf48a1fa-005b9f6647
Date: Mon, 17 Sep 2018 08:31:03 GMT
오브젝트를 삭제합니다. 요청이 성공하게 되면 No Content (204) 상태 코드를 응답합니다.
요청 파라미터
Name | In | Type | Description |
---|---|---|---|
project_id (Optional) | path | string | 프로젝트 ID를 입력합니다. |
container (Optional) | path | string | 컨테이너(버킷) 이름을 입력합니다. |
object (Optional) | path | string | 오브젝트의 이름을 입력합니다. |
multipart-manifest (Optional) | query | string | multipart-manifest=delete 이고, 해당 오브젝트가 대용량 오브젝트(SLO)인 경우, 세그먼트 오브젝트들과 매니페스트 오브젝트가 모두 삭제됩니다. 만약 해당 파라메터를 생략하고, 해당 오브젝트가 static 대용량 오브젝트인 경우, 매니페스트 오브젝트는 삭제되지만 세그먼트 오브젝트들은 삭제되지 않습니다. |
X-Auth-Token (Optional) | header | string | 발급한 Token 값을 입력합니다 |
응답 파라미터
Name | In | Type | Description |
---|---|---|---|
Date | header | string | 해당 요청의 응답 시간입니다. (UTC) |
Content-Length | header | string | 응답 결과의 길이입니다. (Bytes) |
Content-Type (Optional) | header | string | 응답 결과의 MIME 타입입니다. |
X-Trans-Id | header | string | 해당 요청의 트랜젝션 ID입니다. |
X-Openstack-Request-Id | header | string | 해당 요청의 트랜젝션 ID입니다. (X-Trans-Id와 동일합니다.) |
오브젝트 메타데이터 조회
구문
HEAD /v1/AUTH_{project_id}/{container}/{object}
요청 예
curl -i -X HEAD -H "X-Auth-Token: $token" https://kr.archive.ncloudstorage.com/v1/AUTH_{project_id}/{container}/{object}
응답 예
HTTP/1.1 200 OK
Content-Length: 10485760
Accept-Ranges: bytes
Last-Modified: Mon, 17 Sep 2018 07:43:40 GMT
Etag: f1c9645dbc14efddc7d8a322685f26eb
X-Timestamp: 1537170219.48936
Content-Type: application/x-www-form-urlencoded
X-Trans-Id: tx9cdb2e24ab934e55aebd6-005b9f6a91
X-Openstack-Request-Id: tx9cdb2e24ab934e55aebd6-005b9f6a91
Date: Mon, 17 Sep 2018 08:49:21 GMT
오브젝트 메타데이터를 조회합니다. 요청이 성공하게 되면 OK (200) 상태 코드를 응답합니다.
요청 파라미터
Name | In | Type | Description |
---|---|---|---|
project_id (Optional) | path | string | 프로젝트 ID를 입력합니다. |
container (Optional) | path | string | 컨테이너(버킷) 이름을 입력합니다. |
object (Optional) | path | string | 오브젝트의 이름을 입력합니다. |
X-Auth-Token (Optional) | header | string | 발급한 Token 값을 입력합니다 |
temp_url_sig | query | string | temp url |
temp_url_expires | query | integer | temp url |
filename (Optional) | query | string | tem url |
multipart-manifest (Optional) | query | string | multipart-manifest=get 이고, 해당 오브젝트가 대용량 오브젝인인 경우, 오브젝트의 메타데이터 대신 매니페스트 메타데이터와 dynamic 대용량 메타데이터의 X-Object-Manifest 헤더가 응답합니다. |
X-Newest (Optional) | header | boolean | true인 경우, 모든 복제본에 대해 질의를 하고 가장 최근 복제본의 정보로 응답합니다. 해당 헤더가 생략된 경우, 가장 응답이 빠른 정보로 응답합니다. |
If-Match (Optional) | header | string | ETag 조건 헤더입니다. 자세한 정보는 해당 링크에서 확인 : RFC2616 |
If-None-Match (Optional) | header | string | ETag 조건 헤더입니다. 자세한 정보는 해당 링크에서 확인 : RFC2616 |
If-Modified-Since (Optional) | header | string | Last-Modified 조건 헤더입니다. 자세한 정보는 해당 링크에서 확인 : RFC2616 |
If-Unmodified-Since (Optional) | header | string | Last-Modified 조건 헤더입니다. 자세한 정보는 해당 링크에서 확인 : RFC2616 |
응답 파라미터
Name | In | Type | Description |
---|---|---|---|
Content-Length | header | string | 응답 결과의 길이입니다. (Bytes) |
X-Object-Meta-name (Optional) | header | string | 해당 오브젝트의 메타데이터입니다. 헤더명의 name 부분이 메타데이터의 키 역할을 합니다. |
Content-Disposition (Optional) | header | string | 브라우저에 대한 작동을 재정의 합니다. |
Content-Encoding (Optional) | header | string | 해당 오브젝트의 인코딩 방식입니다. |
X-Delete-At (Optional) | header | integer | 해당 오브젝트의 삭제 예정 시간입니다. (UNIX Time) |
X-Object-Manifest (Optional) | header | string | 해당 오브젝트가 대용량 오브젝트(DLO)인 경우 응답됩니다. 세그먼트 오브젝트의 경로가 나타납니다. |
Last-Modified | header | string | 해당 오브젝트가 수정된 가장 최근 시간입니다. (UTC) |
ETag | header | string | ETag 헤더 값입니다. |
X-Timestamp | header | string | 해당 요청의 응답 시간입니다. (Unix Epoch timestamp) |
X-Trans-Id | header | string | 해당 요청의 트랜젝션 ID입니다. |
X-Openstack-Request-Id | header | string | 해당 요청의 트랜젝션 ID입니다. (X-Trans-Id와 동일합니다.) |
Date | header | string | 해당 요청의 응답 시간입니다. (UTC) |
X-Static-Large-Object | header | boolean | true인 경우, 해당 오브젝트는 대용량 오브젝트(SLO)의 매니페스트 오브젝트입니다. |
Content-Type | header | string | 응답 결과의 MIME 타입입니다. |
오브젝트 메타데이터 생성 및 변경
구문
POST /v1/AUTH_{project_id}/{container}/{object}
요청 예
curl -i -X POST -H "X-Auth-Token: $token" -H "X-Object-Meta-Subject: test-object" https://kr.archive.ncloudstorage.com/v1/AUTH_{project_id}/{container}/{object}
응답 예
HTTP/1.1 202 Accepted
Content-Length: 76
Content-Type: text/html; charset=UTF-8
X-Trans-Id: tx31cb8b345bac4fe7b33ab-005b9f7388
X-Openstack-Request-Id: tx31cb8b345bac4fe7b33ab-005b9f7388
Date: Mon, 17 Sep 2018 09:27:37 GMT
오브젝트 메타데이터를 생성 및 변경합니다. 요청이 성공하게 되면 Accepted (202) 상태 코드를 응답합니다.
요청 파라미터
Name | In | Type | Description |
---|---|---|---|
project_id (Optional) | path | string | 프로젝트 ID를 입력합니다. |
container (Optional) | path | string | 컨테이너(버킷) 이름을 입력합니다. |
object (Optional) | path | string | 오브젝트의 이름을 입력합니다. |
bulk-delete (Optional) | query | string | 여러 오브젝트 및 컨테이너들을 한번에 삭제할 때 사용합니다. |
extract-archive (Optional) | query | string | |
X-Auth-Token (Optional) | header | string | 발급한 Token 값을 입력합니다 |
X-Object-Meta-{name} (Optional) | header | string | 해당 오브젝트의 메타데이터입니다. 헤더명의 name 부분이 메타데이터의 키 역할을 합니다. |
X-Delete-At (Optional) | header | integer | 해당 오브젝트의 삭제 예정 시간을 입력합니다. (Unix Epoch timestamp) |
X-Delete-After (Optional) | header | integer | 해당 시간 이후에 해당 오브젝트를 삭제합니다. (seconds) |
Content-Disposition (Optional) | header | string | 브라우저에 대한 작동을 재정의 합니다. |
Content-Encoding (Optional) | header | string | 해당 오브젝트의 인코딩 방식입니다. |
Content-Type (Optional) | header | string | 해당 오브젝트의 MIME 타입을 입력합니다. |
응답 파라미터
Name | In | Type | Description |
---|---|---|---|
Date | header | string | 해당 요청의 응답 시간입니다. (UTC) |
X-Timestamp | header | integer | 해당 요청의 응답 시간입니다. (UNIX Time) |
Content-Length | header | string | 응답 결과의 길이입니다. (Bytes) |
Content-Type (Optional) | header | string | 응답 결과의 MIME 타입입니다. |
X-Trans-Id | header | string | 해당 요청의 트랜젝션 ID입니다. |
X-Openstack-Request-Id | header | string | 해당 요청의 트랜젝션 ID입니다. (X-Trans-Id와 동일합니다.) |