내보내기(0) 인쇄
모두 확장

Blob 가져오기

업데이트 날짜: 2014년 6월

Get Blob 작업은 메타데이터 및 속성을 포함해서 시스템으로부터 blob를 읽거나 다운로드합니다. 또한 Get Blob를 호출해서 스냅숏을 읽을 수도 있습니다.

다음과 같이 Get Blob 요청을 생성할 수 있습니다. HTTPS를 사용하는 것이 좋습니다. myaccount를 사용자의 저장소 계정으로 바꿉니다.

 

  GET 메서드 요청 URI HTTP 버전

https://myaccount.blob.core.windows.net/mycontainer/myblob

https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>

HTTP/1.0

HTTP/1.1

에뮬레이트된 저장소 서비스에 대해 요청을 수행할 때는 에뮬레이터 호스트 이름 및 Blob 서비스 포트를 127.0.0.1:10000으로 지정하고 뒤에 에뮬레이트된 저장소 계정 이름을 붙입니다.

 

  GET 메서드 요청 URI HTTP 버전

http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob

HTTP/1.0

HTTP/1.1

자세한 내용은 개발 및 테스트에 Azure 저장소 에뮬레이터 사용를 참조하십시오.

요청 URI에 다음과 같은 추가 매개 변수를 지정할 수 있습니다.

 

매개 변수 설명

snapshot

선택 사항입니다. 스냅숏 매개 변수는 불투명 DateTime 값이며, 제공된 경우 검색할 blob 스냅숏을 지정합니다. blob 스냅숏 사용에 대한 자세한 내용은 Blob의 스냅숏 만들기을 참조하십시오.

timeout

선택 사항입니다. timeout 매개 변수는 초 단위로 표시됩니다. 자세한 내용은 Blob 서비스 작업의 제한 시간 설정를 참조하십시오.

다음 표에서는 필수 요청 헤더와 선택적 요청 헤더에 대해 설명합니다.

 

요청 헤더 설명

Authorization

필수 사항입니다. 인증 체계, 계정 이름 및 서명을 지정합니다. 자세한 내용은 Azure 저장소 서비스에 대한 인증를 참조하십시오.

Date 또는 x-ms-date

필수 사항입니다. 요청의 UCT(협정 세계시)를 지정합니다. 자세한 내용은 Azure 저장소 서비스에 대한 인증를 참조하십시오.

x-ms-version

인증된 모든 요청의 경우 필수이고, 익명 요청의 경우에는 선택 사항입니다. 이 요청에 사용할 작업의 버전을 지정합니다. 자세한 내용은 Azure 저장소 서비스 버전 관리를 참조하십시오.

Range

선택 사항입니다. 지정된 범위의 blob 바이트만 반환합니다.

x-ms-range

선택 사항입니다. 지정된 범위의 blob 바이트만 반환합니다. Rangex-ms-range가 모두 지정된 경우 서비스에서 x-ms-range의 값이 사용됩니다. 어느 것도 지정하지 않으면 전체 blob 콘텐츠가 반환됩니다. 자세한 내용은 Blob 서비스 작업의 범위 헤더 지정을 참조하십시오.

x-ms-lease-id:<ID>

선택 사항입니다. 이 헤더가 지정되었으면 다음 조건이 모두 충족될 경우에만 작업이 수행됩니다.

  • blob의 임대가 현재 활성 상태입니다.

  • 요청에 지정된 임대 ID가 blob의 임대 ID와 일치합니다.

이 헤더가 지정되었고 이들 조건이 모두 충족되지 않으면 요청이 실패하고 Get Blob 작업이 실패하며 상태 코드 412(전제 조건 실패)가 표시됩니다.

x-ms-range-get-content-md5: true

선택 사항입니다. 이 헤더가 true로 설정되었고 Range 헤더와 함께 지정된 경우, 해당 범위 크기가 4MB 이하인 경우 서비스에서 해당 범위에 대한 MD5 해시가 반환됩니다.

Range 헤더 없이 이 헤더를 지정하면 서비스에서 상태 코드 400(잘못된 요청)이 반환됩니다.

범위 크기가 4MB를 초과할 때 이 헤더가 true로 설정된 경우에는 서비스에서 상태 코드 400(잘못된 요청)이 반환됩니다.

Origin

선택 사항입니다. 요청을 실행한 원본을 지정합니다. 이 헤더가 있으면 응답에 CORS(크로스-원본 자원 공유) 헤더가 생성됩니다.

x-ms-client-request-id

선택 사항입니다. 저장소 분석 로깅을 사용하도록 설정한 경우 분석 로그에 기록된 1KB 문자 제한의 클라이언트에서 생성한 불투명 값을 제공합니다. 클라이언트 쪽 작업과 서버가 받은 요청의 상관 관계를 지정하는 데 이 헤더를 사용하는 것이 좋습니다. 자세한 내용은 저장소 분석 로깅 정보Microsoft Azure 로깅: 로그를 사용하여 저장소 요청 추적을 참조하십시오.

이 작업은 또한 지정된 조건이 충족될 경우에만 blob를 읽는 조건부 헤더 사용을 지원합니다. 자세한 내용은 Blob 서비스 작업의 조건부 헤더 지정를 참조하십시오.

없음.

응답에는 HTTP 상태 코드, 응답 헤더 집합, blob 콘텐츠를 포함하는 응답 본문이 포함됩니다.

전체 blob 읽기 작업이 성공하면 상태 코드 200(정상)이 반환됩니다.

지정된 범위를 읽는 작업이 성공하면 상태 코드 206(부분 콘텐츠)이 반환됩니다.

상태 코드에 대한 자세한 내용은 상태 및 오류 코드를 참조하십시오.

이 작업의 응답에는 다음과 같은 헤더가 포함됩니다. 응답에는 추가 표준 HTTP 헤더가 포함될 수도 있습니다. 모든 표준 헤더는 HTTP/1.1 프로토콜 사양을 따릅니다.

 

구문 설명

Last-Modified

blob를 마지막으로 수정한 날짜/시간입니다. 날짜 형식은 RFC 1123을 따릅니다.

blob의 메타데이터 또는 속성에 대한 업데이트를 포함하여 blob를 수정하는 모든 작업은 수행할 경우 blob의 마지막 수정 시간이 변경됩니다.

x-ms-meta-name:value

사용자 정의 메타데이터로 이 blob와 연결된 이름-값 쌍의 집합입니다.

Content-Length

응답 본문에 제공된 바이트 수입니다.

Content-Type

blob에 대해 지정된 콘텐츠 형식입니다. 기본 콘텐츠 형식은 application/octet-stream입니다.

Content-Range

클라이언트가 Range 요청 헤더를 설정해서 blob의 하위 집합을 요청한 경우에 반환되는 바이트 범위를 나타냅니다.

ETag

엔터티 태그에는 클라이언트가 GET 요청 헤더를 사용하여 조건부 If-Modified 작업을 수행하는 데 사용할 수 있는 값이 포함됩니다. 요청 버전이 2011-08-18 이상이면 ETag 값이 따옴표로 표시됩니다.

Content-MD5

blob에 MD5 해시가 포함되고 이 Get Blob 작업이 전체 blob를 읽는 작업인 경우, 클라이언트가 메시지 콘텐츠 무결성을 확인할 수 있도록 이 응답 헤더가 반환됩니다.

2012-02-12 버전 이상에서 Put BlobPut Blob 요청에 MD5 헤더가 포함되지 않은 경우에도 블록 blob의 MD5 해시 값을 설정합니다.

요청이 지정된 범위를 읽는 요청이고 x-ms-range-get-content-md5true로 설정되었으면 범위 크기가 4MB 이하인 경우, 이 요청으로 해당 범위의 MD5 해시가 반환됩니다.

이러한 조건 집합 중 어느 것도 true가 아니면 Content-MD5 헤더에 대해 값이 반환되지 않습니다.

x-ms-range-get-content-md5 헤더 없이 Range를 지정하면 서비스에서 상태 코드 400(잘못된 요청)이 반환됩니다.

범위 크기가 4MB를 초과할 때 x-ms-range-get-content-md5true로 설정되었으면 서비스에서 상태 코드 400(잘못된 요청)이 반환됩니다.

Content-Encoding

이 헤더는 Content-Encoding 요청 헤더에 대해 지정된 값을 반환합니다.

Content-Language

이 헤더는 Content-Language 요청 헤더에 대해 지정된 값을 반환합니다.

Cache-Control

이전에 blob에 대해 지정된 경우 이 헤더가 반환됩니다.

Content-Disposition

버전 2013-08-15 이상에 대한 요청에 대해 반환됩니다. 이 헤더는 x-ms-blob-content-disposition 헤더에 대해 지정된 값을 반환합니다.

Content-Disposition 응답 헤더 필드는 응답 페이로드를 처리하는 방법에 대한 추가 정보를 제공하고 추가 메타데이터를 연결하는 데도 사용할 수 있습니다. 예를 들어 attachment로 설정되는 경우 사용자 에이전트가 응답을 표시하지 않는 대신 지정된 blob 이름이 아닌 파일 이름으로 다른 이름으로 저장 대화 상자를 표시해야 함을 나타냅니다.

x-ms-blob-sequence-number

페이지 blob에 대한 현재 시퀀스 번호입니다.

이 헤더는 블록 blob의 경우 반환되지 않습니다.

x-ms-blob-type: <BlockBlob,PageBlob>

blob의 유형을 반환합니다.

x-ms-copy-completion-time:<datetime>

2012-02-12 버전 이상. 이 blob가 대상 blob인 마지막으로 시도된 Copy Blob 작업의 완료 시간입니다. 이 값은 완료, 중단 또는 실패한 복사 시도의 시간을 지정할 수 있습니다. 복사가 보류 중이거나, 이 blob가 Copy Blob 작업에서 대상으로 지정되지 않은 경우 또는 Copy Blob, Set Blob Properties 또는 Put Blob를 사용하여 Put Block List 작업이 완료된 후 이 blob가 수정된 경우 이 헤더가 표시되지 않습니다.

x-ms-copy-status-description: <error string>

2012-02-12 버전 이상. x-ms-copy-statusfailed 또는 pending인 경우에만 표시됩니다. 치명적이거나 치명적이지 않은 마지막 복사 작업 실패의 원인을 설명합니다. 이 Blob가 Copy Blob 작업의 대상이 아니거나 Copy Blob, Set Blob Properties 또는 Put Blob를 사용하여 Put Block List 작업이 완료된 후 이 Blob가 수정된 경우 이 헤더가 표시되지 않습니다.

x-ms-copy-id: <id>

2012-02-12 버전 이상. 이 blob가 대상 blob인 마지막으로 시도된 Copy Blob 작업의 문자열 식별자입니다. 이 Blob가 Copy Blob 작업의 대상이 아니거나 Copy Blob, Set Blob Properties 또는 Put Blob를 사용하여 Put Block List 작업이 완료된 후 이 Blob가 수정된 경우 이 헤더가 표시되지 않습니다.

x-ms-copy-progress: <bytes copied/bytes total>

2012-02-12 버전 이상. 이 blob가 대상 blob인 마지막으로 시도된 Copy Blob 작업에서 복사된 바이트 수 및 원본의 총 바이트 수를 포함합니다. 0에서 Content-Length 사이의 복사된 바이트 수를 표시할 수 있습니다. 이 Blob가 Copy Blob 작업의 대상이 아니거나 Copy Blob, Set Blob Properties 또는 Put Blob를 사용하여 Put Block List 작업이 완료된 후 이 Blob가 수정된 경우 이 헤더가 표시되지 않습니다.

x-ms-copy-source: url

2012-02-12 버전 이상. 이 blob가 대상 blob인 마지막으로 시도된 Copy Blob 작업에서 사용된 원본 blob 또는 파일을 지정하는 길이가 최대 2KB인 URL입니다. 이 Blob가 Copy Blob 작업의 대상이 아니거나 Copy Blob, Set Blob Properties 또는 Put Blob를 사용하여 Put Block List 작업이 완료된 후 이 Blob가 수정된 경우 이 헤더가 표시되지 않습니다.

x-ms-copy-status: <pending | success | aborted | failed>

2012-02-12 버전 이상. x-ms-copy-id로 식별된 복사 작업의 상태입니다. 다음 값을 포함합니다.

  • success: 복사가 완료되었습니다.

  • pending: 복사가 진행 중입니다. 간헐적으로 치명적이지 않은 오류가 발생하여 복사 진행을 느리게 하지만 복사 작업이 실패하지 않는 경우에는 x-ms-copy-status-description을 확인합니다.

  • aborted: 복사가 Abort Blob Copy로 종료되었습니다.

  • failed: 복사하지 못했습니다. 오류 세부 정보는 x-ms-copy-status-description을 참조하십시오.

이 Blob가 Copy Blob 작업의 대상이 아니거나 Copy Blob, Set Blob Properties 또는 Put Blob를 사용하여 Put Block List 작업이 완료된 후 이 Blob가 수정된 경우 이 헤더가 표시되지 않습니다.

x-ms-lease-duration: <infinite | fixed>

2012-02-12 버전 이상. blob가 임대된 경우 해당 임대가 무한 또는 고정된 기간인지 여부를 지정합니다.

x-ms-lease-state: <available | leased | expired | breaking | broken>

2012-02-12 버전 이상. blob의 임대 상태입니다.

x-ms-lease-status:<locked, unlocked>

blob의 현재 임대 상태입니다.

x-ms-request-id

이 헤더는 수행된 요청을 고유하게 식별하며, 이 헤더를 사용해서 요청 문제를 해결할 수 있습니다. 자세한 내용은 API 작업 문제 해결를 참조하십시오.

x-ms-version

요청을 실행하는 데 사용되는 Blob 서비스의 버전을 나타냅니다. 2009-09-19 버전 이상을 사용하여 수행된 요청에 포함됩니다.

Blob 서비스의 2009-09-19 버전을 사용해서 컨테이너가 공용 액세스용으로 표시된 경우 지정된 버전이 없는 익명 요청에 대해서도 이 헤더가 반환됩니다.

Accept-Ranges: bytes

서비스에서 일부 blob 콘텐츠에 대한 요청이 지원됨을 나타냅니다. 2011-08-18 버전 이상을 사용하여 수행되는 요청 및 SDK 버전 1.6 이상의 로컬 저장소 서비스를 위해 포함되었습니다.

Date

응답이 시작된 시간을 나타내는 서비스에서 생성된 UTC 날짜/시간 값입니다.

Access-Control-Allow-Origin

요청에 Origin 헤더가 포함되고 CORS가 일치 규칙과 함께 설정된 경우 반환됩니다. 일치할 경우 이 헤더는 원본 요청 헤더의 값을 반환합니다.

Access-Control-Expose-Headers

요청에 Origin 헤더가 포함되고 CORS가 일치 규칙과 함께 설정된 경우 반환됩니다. 클라이언트 또는 요청 실행자에 노출될 응답 헤더의 목록을 반환합니다.

Vary

CORS 규칙이 지정된 경우 Origin 헤더의 값과 함께 반환됩니다. 자세한 내용은 Azure 저장소 서비스에 대한 CORS(크로스-원본 자원 공유) 지원을 참조하십시오.

Access-Control-Allow-Credentials

요청에 Origin 헤더가 포함되고 CORS가 모든 원본을 허용하지 않는 일치 규칙과 함께 설정된 경우 반환됩니다. 이 헤더는 true로 설정됩니다.

응답 본문에는 blob의 콘텐츠가 포함됩니다.

Status Response:
HTTP/1.1 200 OK

Response Headers:
x-ms-blob-type: BlockBlob
x-ms-lease-status: unlocked
x-ms-lease-state: available
x-ms-meta-m1: v1
x-ms-meta-m2: v2
Content-Length: 11
Content-Type: text/plain; charset=UTF-8
Date: Wed, 23 Oct 2013 22:49:18 GMT
ETag: "0x8CB171DBEAD6A6B"
Vary: Origin
Last-Modified: Wed, 23 Oct 2013 22:48:29 GMT
x-ms-version: 2013-08-15
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0

컨테이너의 ACL(액세스 제어 목록)이 blob에 대한 익명 액세스를 허용하도록 설정된 경우 클라이언트가 이 작업을 호출할 수 있습니다. 컨테이너가 전용 컨테이너인 경우 계정 소유자 및 blob 읽기 권한이 있는 공유 액세스 서명을 갖는 모든 사용자가 이 작업을 수행할 수 있습니다.

페이지 blob의 경우 아직 콘텐츠를 포함하지 않거나 생성된 페이지 범위에 대해 Get Blob 작업을 수행하면 해당 바이트가 0으로 반환됩니다.

범위가 지정되지 않은 페이지 blob에서 Get Blob를 호출하면 서비스에서 x-ms-blob-content-length 헤더에 대해 지정된 값까지 페이지 범위가 반환됩니다. 콘텐츠가 부족한 모든 페이지에 대해서는 서비스가 해당 바이트에 대해 0을 반환합니다.

Get Blob 작업을 완료하는 데 허용된 시간은 MB당 2분입니다. 작업에 평균적으로 MB당 2분 이상의 시간이 소요되면 해당 작업이 시간 초과됩니다.

전용 컨테이너에 속하는 blob를 검색하려면 x-ms-version 헤더가 필요합니다. blob가 전체 또는 일부 공용 액세스에 사용할 수 있는 컨테이너에 속하는 경우 버전을 지정하지 않고도 모든 클라이언트가 이를 읽을 수 있습니다. 공용 컨테이너에 속하는 blob를 검색할 때는 서비스 버전이 필요하지 않습니다. 자세한 내용은 컨테이너 및 Blob에 대한 액세스 제한을 참조하십시오.

복사 작업

Copy Blob 작업이 완료되었는지 확인하려면 먼저 대상 blob의 x-ms-copy-id 헤더 값이 Copy Blob에 대한 최초 호출로 제공된 복사 ID와 일치하는지 확인합니다. 일치할 경우 다른 응용 프로그램이 복사를 중단하고 새 Copy Blob 작업을 시작하지 않은 것입니다. 그런 후 x-ms-copy-status: success 헤더를 확인합니다. 하지만 Lease, Put PagePut Block 작업을 제외하고 blob에 대한 모든 쓰기 작업은 blob에서 모든 x-ms-copy-* 속성을 제거합니다. 또한 이러한 속성은 2012-02-12 이전 버전을 사용하는 Copy Blob 작업에서도 복사되지 않습니다.

x-ms-copy-status: failed가 응답에 나타나면 x-ms-copy-status-descriptionCopy Blob 오류에 대한 자세한 정보가 포함됩니다.

다음 표에서는 모든 x-ms-copy-status-description 값의 세 가지 필드에 대해 설명합니다.

 

구성 요소 설명

HTTP 상태 코드

오류를 나타내는 표준 세 자리 정수입니다.

오류 코드

Azure에서 <ErrorCode> 요소로 제공된 오류 설명 키워드입니다. <ErrorCode> 요소가 없으면 HTTP 사양의 세 자리 숫자로 된 HTTP 상태 코드와 연결된 표준 오류 텍스트가 포함된 키워드가 사용됩니다. See 공통 REST API 오류 코드.

정보

따옴표로 표시된 오류에 대한 자세한 설명입니다.

다음 표에서는 일반적인 오류 시나리오의 x-ms-copy-statusx-ms-copy-status-description 값에 대해 설명합니다.

Important중요
여기에 표시된 설명 텍스트는 버전 변경이 없더라도 경고 없이 변경될 수 있으므로 이 텍스트와 정확히 일치하지 않을 수 있습니다.

 

시나리오 x-ms-copy-status 값 x-ms-copy-status-description 값

복사 작업이 성공적으로 완료되었습니다.

성공

비어 있음

사용자가 복사 작업이 완료되기 전에 작업을 중단했습니다.

중단됨

비어 있음

복사 작업 중 원본 blob에서 읽기를 수행할 때 오류가 발생했지만 작업이 다시 시도됩니다.

보류 중

502 잘못된 게이트웨이 "원본을 읽을 때 다시 시도 가능한 오류가 발생했습니다. 다시 시도합니다. 오류 시간: <시간>"

복사 작업의 대상 blob에 쓰는 중 오류가 발생했지만 작업이 다시 시도됩니다.

보류 중

500 InternalServerError "다시 시도 가능한 오류가 발생했습니다. 다시 시도합니다. 오류 시간: <시간>"

복사 작업의 원본 blob에서 읽기를 수행할 때 복구할 수 없는 오류가 발생했습니다.

실패

404 ResourceNotFound "원본을 읽을 때 복사가 실패했습니다."

note참고
이 기본 오류를 보고할 때 Azure는 <ErrorCode> 요소에 ResourceNotFound를 반환합니다. <ErrorCode> 요소가 응답에 없으면 NotFound 와 같은 HTTP 상태의 표준 문자열 표현이 나타납니다.

모든 복사 작업을 제한하는 제한 시간이 경과되었습니다. (현재 제한 시간은 2주입니다.)

실패

500 OperationCancelled "복사에 허용된 최대 시간을 초과했습니다."

원본에서 읽을 때 복사 작업이 너무 자주 실패했고 최소한의 성공 시도 비율을 충족하지 않았습니다. (이 제한 시간은 품질 수준이 매우 낮은 원본이 실패하기 전에 2주 동안 다시 시도되지 않도록 방지합니다.)

실패

500 OperationCancelled "원본을 읽을 때 복사가 실패했습니다."

표시:
© 2014 Microsoft