이 페이지가 유용했습니까?
이 콘텐츠에 대한 여러분의 의견은 중요합니다. 의견을 알려주십시오.
추가 의견
1500자 남음
내보내기(0) 인쇄
모두 확장

Blob 나열

업데이트 날짜: 2015년 2월

List Blobs 작업은 지정된 컨테이너의 모든 Blob 목록을 열거합니다.

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

 

방법 요청 URI HTTP 버전

GET

https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list

HTTP/1.1

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

 

방법 요청 URI HTTP 버전

GET

http://127.0.0.1:10000/devstoreaccount1/mycontainer?restype=container&comp=list

HTTP/1.1

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

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

 

매개 변수 설명

prefix

선택적 요소입니다. 이름이 지정한 접두사로 시작하는 Blob만 반환하도록 결과를 필터링합니다.

delimiter

선택적 요소입니다. 요청에 이 매개 변수가 포함되면 응답 본문에 구분 기호 문자까지 표시되는 하위 문자열과 동일한 이름으로 시작하는 모든 Blob에 대해 자리 표시자 역할을 하는 BlobPrefix 요소를 반환합니다. 이 구분 기호는 단일 문자이거나 문자열일 수 있습니다.

marker

선택적 요소입니다. 다음 목록 작업으로 반환할 목록 부분을 식별하는 문자열 값입니다. 이 작업은 반환된 목록이 완전하지 않은 경우 응답 본문 내의 마커 값을 반환합니다. 그런 다음 이 마커 값을 다음 목록 항목 집합을 요청하는 후속 호출에 사용할 수 있습니다.

마커 값은 클라이언트에 불투명합니다.

maxresults

선택적 요소입니다. 모든 BlobPrefix 요소를 포함하여 반환할 최대 Blob 수를 지정합니다. 요청에서 maxresults를 지정하지 않거나 5,000보다 큰 값을 지정할 경우 서버는 최대 5,000개의 항목을 반환합니다.

0 이하로 maxresults를 설정하면 오류 응답 코드 400(잘못된 요청)를 반환합니다.

include={snapshots,metadata,uncommittedblobs,copy}

선택적 요소입니다. 응답에 포함시킬 데이터 집합을 하나 이상 지정합니다.

  • snapshots: 열거형에서 스냅숏의 포함 여부를 지정합니다. 응답에서 스냅숏은 생성된 시간 순서로 나열됩니다.

  • metadata: 응답에서 반환할 Blob 메타데이터를 지정합니다.

  • uncommittedblobs: 블록이 업로드되었지만 블록 목록 배치(REST API)를 사용하여 커밋되지 않은 Blob 중 응답에 포함시킬 Blob를 지정합니다.

  • copy: 2012-02-12 버전 이상. 응답에 포함해야 할, 현재 또는 이전 Copy Blob 작업에 관련된 메타데이터를 지정합니다.

URI에 이러한 작업을 하나 이상을 지정하려면 URL로 인코딩된 쉼표("%82")로 각 옵션을 구분해야 합니다.

timeout

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

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

 

요청 헤더 설명

Authorization

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

Date 또는 x-ms-date

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

x-ms-version

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

x-ms-client-request-id

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

없음.

예제 요청은 Blob 리소스 열거를 참조하십시오.

응답에는 HTTP 상태 코드, 응답 헤더 집합 및 응답 본문이 XML 형식으로 포함되어 있습니다.

작업에 성공하면 상태 코드 200(정상)이 반환됩니다.

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

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

 

응답 헤더 설명

Content-Type

결과가 반환될 형식을 지정합니다. 현재 이 값은 application/xml입니다.

x-ms-request-id

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

x-ms-version

요청을 실행하는 데 사용되는 Blob 서비스의 버전을 나타냅니다. 이 헤더는 2009-09-19 이전 버전을 사용하여 이루어진 요청에 대해 반환됩니다.

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

Date

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

XML 응답의 형식은 다음과 같습니다.

Prefix, Marker, MaxResultsDelimiter 요소의 경우 요청 URI에 지정된 경우에만 포함됩니다. NextMarker 요소는 목록 결과가 완전하지 않은 경우에만 값을 포함합니다.

스냅숏, Blob 메타데이터 및 커밋되지 않은 Blob는 include 매개 변수를 사용하여 요청 URI에 지정된 경우에만 응답에 포함됩니다.

2009-09-19 이후 버전에서 Blob의 속성은 Properties요소 내에 캡슐화됩니다.

2013-08-15 이상 버전에서 EnumerationResults 요소에는 Blob 끝점을 지정하는 ServiceEndpoint 특성 및 컨테이너의 이름을 지정하는 ContainerName 필드가 포함됩니다. 이전 버전에서 이 두 특성은 ContainerName 필드 하나로 표현되었습니다. 또한 2013-08-15 이상 버전에서는 UrlBlob 요소가 제거되었습니다.

<?xml version="1.0" encoding="utf-8"?>
<EnumerationResults ServiceEndpoint="http://myaccount.blob.core.windows.net/"  ContainerName="mycontainer">
  <Prefix>string-value</Prefix>
  <Marker>string-value</Marker>
  <MaxResults>int-value</MaxResults>
  <Delimiter>string-value</Delimiter>
  <Blobs>
    <Blob>
      <Name>blob-name</name>
      <Snapshot>date-time-value</Snapshot>
      <Properties>
        <Last-Modified>date-time-value</Last-Modified>
        <Etag>etag</Etag>
        <Content-Length>size-in-bytes</Content-Length>
        <Content-Type>blob-content-type</Content-Type>
        <Content-Encoding />
        <Content-Language />
        <Content-MD5 />
        <Cache-Control />
        <x-ms-blob-sequence-number>sequence-number</x-ms-blob-sequence-number>
        <BlobType>BlockBlob|PageBlob</BlobType>
        <LeaseStatus>locked|unlocked</LeaseStatus>
        <LeaseState>available | leased | expired | breaking | broken</LeaseState>
        <LeaseDuration>infinite | fixed</LeaseDuration>
        <CopyId>id</CopyId>
        <CopyStatus>pending | success | aborted | failed </CopyStatus>
        <CopySource>source url</CopySource>
        <CopyProgress>bytes copied/bytes total</CopyProgress>
        <CopyCompletionTime>datetime</CopyCompletionTime>
        <CopyStatusDescription>error string</CopyStatusDescription>
      </Properties>
      <Metadata>   
        <Name>value</Name>
      </Metadata>
    </Blob>
    <BlobPrefix>
      <Name>blob-prefix</Name>
    </BlobPrefix>
  </Blobs>
  <NextMarker />
</EnumerationResults>

LeaseStateLeaseDuration은 2012-02-12 이후 버전에서만 표시됩니다.

CopyId, CopyStatus, CopySource, CopyProgress, CopyCompletionTimeCopyStatusDescription은 이 작업에 include={copy} 매개 변수가 포함될 경우 2012-02-12 이후 버전에서만 표시됩니다. 이 Blob가 Copy Blob 작업의 대상이 아니거나 Copy Blob, Set Blob Properties 또는 Put Blob를 사용하여 Put Block List 작업이 완료된 후 이 Blob가 수정된 경우 이 요소는 표시되지 않습니다. 또한 2012-02-12 이전 버전의 Blob 복사에 의해 생성된 Blob에서도 이러한 요소가 표시되지 않습니다.

note참고
2009-09-19 이후 버전부터 List Blobs은 응답 본문에서 다음과 같은 이름이 변경된 요소를 반환합니다.

  • Last-Modified(이전 LastModified)

  • Content-Length(이전 Size)

  • Content-Type(이전 ContentType)

  • Content-Encoding(이전 ContentEncoding)

  • Content-Language(이전 ContentLanguage)

Content-MD5 요소는 2009-09-19 이후 버전으로 생성된 Blob에서 표시됩니다. 2012-02-12 이후 버전에서 Blob 배치(REST API)를 사용하여 Blob를 업로드할 때는 Blob 서비스가 Content-MD5 값을 계산하지만, 블록 목록 배치(REST API)를 사용하여 Blob를 만들 때는 이 값을 계산하지 않습니다. Blob를 만들 때 또는 블록 목록 배치(REST API)Blob 속성 설정(REST API) 작업을 호출하여 Content-MD5 값을 명시적으로 설정할 수 있습니다.

예제 응답은 Blob 리소스 열거를 참조하십시오.

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

응답에서의 Blob 속성

열거 시 커밋되지 않은 Blob를 포함하도록 요청한 경우 일부 속성은 Blob가 커밋되어야 설정되므로 응답에서 이러한 속성이 반환되지 않을 수 있습니다.

페이지 Blob에 대해 x-ms-blob-sequence-number 요소만 반환됩니다.

페이지 Blob의 경우 Content-Length 요소는 Blob의 x-ms-blob-content-length 헤더 값에 해당되는 값을 반환합니다.

2009-09-19 이후 버전을 사용하여 Blob에 설정된 경우에만 응답 본문에 Content-MD5 요소가 표시됩니다. Blob를 만들거나 Blob 속성 설정(REST API)를 호출할 때 Content-MD5 속성을 설정할 수 있습니다. 2012-02-12 버전 이상에서 Put BlobPut Blob 요청에 MD5 헤더가 포함되지 않은 경우에도 블록 blob의 MD5 값을 설정합니다.

응답의 메타데이터

Metadata 요소는 include=metadata 매개 변수가 URI에 지정된 경우에만 제공됩니다. Metadata 요소 내에서 각 이름-값 쌍의 값은 해당 쌍의 이름에 해당하는 요소 내에 나열됩니다.

이 매개 변수로 요청된 메타데이터는 2009-09-19 버전의 Blob 서비스에 해당하는 명명 제한 사항에 따라 저장해야 합니다. 이 버전부터는 모든 메타데이터 이름이 C# 식별자의 명명 규칙을 따라야 합니다.

메타데이터 이름-값 쌍이 2009-09-19 버전에 적용되는 명명 제한 사항을 위반할 경우, 다음 XML 형식에 표시된 것처럼 응답 본문에 x-ms-invalid-name 요소 내의 잘못된 이름이 표시됩니다.


      …
      <Metadata>
        <MyMetadata1>first value</MyMetadata1>
        <MyMetadata2>second value</MyMetadata2>
        <x-ms-invalid-name>invalid-metadata-name</x-ms-invalid-name>
      </Metadata>
      …

응답의 스냅숏

URI에 include=snapshots 매개 변수가 지정된 경우에만 스냅숏이 응답에 나열됩니다. 스냅숏은 활성 임대를 가질 수 없으므로 응답에 나열된 스냅숏에는 LeaseStatus 요소가 포함되지 않습니다.

구분 기호와 함께 List Blobs을 호출할 경우 열거형에 스냅숏을 포함할 수 없습니다. 요청에서 둘 다 포함하면 InvalidQueryParameter 오류(HTTP 상태 코드 400 - 잘못된 요청)를 반환합니다.

응답에서 커밋되지 않은 Blob

URI에 include=uncommittedblobs 매개 변수가 지정된 경우에만 커밋되지 않은 Blob가 응답에 나열됩니다. 응답에 나열된 커밋되지 않은 Blob에는 다음 요소가 포함되지 않습니다.

  • Last-Modified

  • Etag

  • Content-Type

  • Content-Encoding

  • Content-Language

  • Content-MD5

  • Cache-Control

  • Metadata

표식 값을 사용하여 결과 집합 반환

지정된 maxresults 매개 변수의 값 또는 기본 maxresults의 기본값을 초과하는 수의 Blob를 반환해야 할 경우 응답 본문에는 후속 요청에 반환할 추가 Blob가 있음을 나타내는 NextMarker 요소가 포함됩니다. 다음 항목 집합을 반환하려면 후속 요청의 URI에서 마커 매개 변수로 NextMarker 값을 지정합니다.

NextMarker 값은 불투명으로 처리해야 합니다.

구분 기호를 사용하여 Blob 네임스페이스 분리

delimiter 매개 변수는 호출자가 사용자 구성 구분 기호를 사용하여 Blob 네임스페이스를 분리할 수 있도록 합니다. 이렇게 하면 파일 시스템에서와 같이 blob의 가상 계층을 트래버스할 수 있습니다. 이 구분 기호는 단일 문자이거나 문자열일 수 있습니다. 요청에 이 매개 변수가 포함되면 작업이 BlobPrefix 요소를 반환합니다. 구분 기호 문자까지 표시되는 하위 문자열과 동일한 이름으로 시작하는 모든 Blob 대신 BlobPrefix 요소가 반환됩니다. BlobPrefix 요소의 값은 substring+delimiter이며, 여기서 substring은 하나 이상의 blob 이름으로 시작하는 공통 하위 문자열이고, delimiterdelimiter 매개 변수의 값입니다.

BlobPrefix 의 값을 사용해서 요청 URI에 prefix 매개 변수에 대한 BlobPrefix 값을 지정하여 이 접두사로 시작하는 blob를 나열하도록 후속 호출을 수행할 수 있습니다.

BlobPrefix 요소와 마찬가지로 최대 결과 수까지 각 Blob 요소가 반환됩니다.

Blob는 응답 본문에 대문자부터 시작하는 알파벳 순서로 나열됩니다.

CopyStatusDescription의 복사 오류

CopyStatusDescription에는 Copy Blob 오류에 대한 자세한 정보가 포함됩니다.

  • 복사 시도가 실패하여 Blob 서비스가 작업을 재시도할 때 CopyStatuspending으로 설정되며, CopyStatusDescription은 마지막 복사 시도에서 발생한 오류에 대해 설명합니다.

  • CopyStatusfailed로 설정되면 CopyStatusDescription은 복사 작업이 실패하게 된 오류를 설명합니다.

다음 표에서는 모든 CopyStatusDescription 값의 세 가지 필드에 대해 설명합니다.

 

구성 요소 설명

HTTP 상태 코드

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

오류 코드

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

정보

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

다음 표에서는 일반적인 오류 시나리오의 CopyStatusCopyStatusDescription 값에 대해 설명합니다.

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

 

시나리오 CopyStatus 값 CopyStatusDescription 값

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

성공

비어 있음

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

중단됨

비어 있음

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

보류 중

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

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

보류 중

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

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

실패

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

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

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

실패

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

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

실패

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

표시:
© 2015 Microsoft