다음을 통해 공유


ContainerClient class

ContainerClient는 Blob을 조작할 수 있는 Azure Storage 컨테이너의 URL을 나타냅니다.

Extends

StorageClient

생성자

ContainerClient(string, PipelineLike)

ContainerClient의 인스턴스를 만듭니다. 이 메서드는 컨테이너를 가리키는 URL을 허용합니다. 인코딩된 URL 문자열은 두 번 이스케이프되지 않으며 URL 경로의 특수 문자만 이스케이프됩니다. Blob 이름에 ? 또는 %BLOB 이름을 URL에 인코딩해야 합니다.

ContainerClient(string, StorageSharedKeyCredential | AnonymousCredential | TokenCredential, StoragePipelineOptions)

ContainerClient의 인스턴스를 만듭니다. 이 메서드는 컨테이너를 가리키는 URL을 허용합니다. 인코딩된 URL 문자열은 두 번 이스케이프되지 않으며 URL 경로의 특수 문자만 이스케이프됩니다. Blob 이름에 ? 또는 %BLOB 이름을 URL에 인코딩해야 합니다.

ContainerClient(string, string, StoragePipelineOptions)

ContainerClient의 인스턴스를 만듭니다.

속성

containerName

컨테이너의 이름입니다.

상속된 속성

accountName
credential

AnonymousCredential, StorageSharedKeyCredential 또는 서비스에 대한 요청을 인증하는 @azure/identity 패키지의 자격 증명과 같은 TokenCredential 인터페이스를 구현하는 개체를 제공할 수도 있습니다. 지정하지 않으면 AnonymousCredential이 사용됩니다.

url

인코딩된 URL 문자열 값입니다.

메서드

create(ContainerCreateOptions)

지정된 계정 아래에 새 컨테이너를 만듭니다. 이름이 같은 컨테이너가 이미 있는 경우 작업이 실패합니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/create-container 명명 규칙 참조: https://learn.microsoft.com/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata 참조

createIfNotExists(ContainerCreateOptions)

지정된 계정 아래에 새 컨테이너를 만듭니다. 이름이 같은 컨테이너가 이미 있는 경우 변경되지 않습니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/create-container 명명 규칙 참조: https://learn.microsoft.com/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata 참조

delete(ContainerDeleteMethodOptions)

삭제할 지정된 컨테이너를 표시합니다. 컨테이너와 컨테이너 내에 포함된 모든 Blob은 나중에 가비지 수집 중에 삭제됩니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/delete-container 참조

deleteBlob(string, ContainerDeleteBlobOptions)

삭제할 지정된 Blob 또는 스냅샷을 표시합니다. Blob은 나중에 가비지 수집 중에 삭제됩니다. Blob을 삭제하려면 모든 스냅샷을 삭제해야 합니다. Blob 삭제 작업과 동시에 둘 다 삭제할 수 있습니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/delete-blob 참조

deleteIfExists(ContainerDeleteMethodOptions)

지정된 컨테이너가 있는 경우 삭제할 컨테이너를 표시합니다. 컨테이너와 컨테이너 내에 포함된 모든 Blob은 나중에 가비지 수집 중에 삭제됩니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/delete-container 참조

exists(ContainerExistsOptions)

이 클라이언트가 나타내는 Azure 컨테이너 리소스가 있으면 true를 반환합니다. false이면 false입니다.

참고: 다른 클라이언트 또는 애플리케이션에서 기존 컨테이너를 삭제할 수 있기 때문에 이 함수를 주의해서 사용합니다. 그 반대의 경우도 마찬가지입니다. 이 함수가 완료된 후에는 이름이 같은 새 컨테이너가 다른 클라이언트 또는 애플리케이션에 의해 추가될 수 있습니다.

findBlobsByTags(string, ContainerFindBlobByTagsOptions)

지정된 컨테이너 아래에 지정된 태그가 있는 모든 Blob을 찾는 비동기 반복기를 반환합니다.

.byPage()는 비동기 반복 반복기를 반환하여 페이지에 Blob을 나열합니다.

for await 구문을 사용하는 예제:

let i = 1;
for await (const blob of containerClient.findBlobsByTags("tagkey='tagvalue'")) {
  console.log(`Blob ${i++}: ${blob.name}`);
}

iter.next()을(를) 사용하는 예제:

let i = 1;
const iter = containerClient.findBlobsByTags("tagkey='tagvalue'");
let blobItem = await iter.next();
while (!blobItem.done) {
  console.log(`Blob ${i++}: ${blobItem.value.name}`);
  blobItem = await iter.next();
}

byPage()을(를) 사용하는 예제:

// passing optional maxPageSize in the page settings
let i = 1;
for await (const response of containerClient.findBlobsByTags("tagkey='tagvalue'").byPage({ maxPageSize: 20 })) {
  if (response.blobs) {
    for (const blob of response.blobs) {
      console.log(`Blob ${i++}: ${blob.name}`);
    }
  }
}

표식과 함께 페이징을 사용하는 예제:

let i = 1;
let iterator = containerClient.findBlobsByTags("tagkey='tagvalue'").byPage({ maxPageSize: 2 });
let response = (await iterator.next()).value;

// Prints 2 blob names
if (response.blobs) {
  for (const blob of response.blobs) {
    console.log(`Blob ${i++}: ${blob.name}`);
  }
}

// Gets next marker
let marker = response.continuationToken;
// Passing next marker as continuationToken
iterator = containerClient
  .findBlobsByTags("tagkey='tagvalue'")
  .byPage({ continuationToken: marker, maxPageSize: 10 });
response = (await iterator.next()).value;

// Prints blob names
if (response.blobs) {
  for (const blob of response.blobs) {
     console.log(`Blob ${i++}: ${blob.name}`);
  }
}
generateSasStringToSign(ContainerGenerateSasUrlOptions)

공유 키 자격 증명을 사용하여 생성된 ContainerClient에만 사용할 수 있습니다.

전달된 클라이언트 속성 및 매개 변수를 기반으로 Blob Container Service SAS(공유 액세스 서명) URI에 서명하는 문자열을 생성합니다. SAS는 클라이언트의 공유 키 자격 증명으로 서명됩니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas 참조

generateSasUrl(ContainerGenerateSasUrlOptions)

공유 키 자격 증명을 사용하여 생성된 ContainerClient에만 사용할 수 있습니다.

전달된 클라이언트 속성 및 매개 변수를 기반으로 Blob Container Service SAS(공유 액세스 서명) URI를 생성합니다. SAS는 클라이언트의 공유 키 자격 증명으로 서명됩니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas 참조

generateUserDelegationSasStringToSign(ContainerGenerateSasUrlOptions, UserDelegationKey)

전달된 클라이언트 속성 및 매개 변수를 기반으로 Blob Container Service SAS(공유 액세스 서명) URI에 서명하는 문자열을 생성합니다. SAS는 입력 사용자 위임 키로 서명됩니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas 참조

generateUserDelegationSasUrl(ContainerGenerateSasUrlOptions, UserDelegationKey)

전달된 클라이언트 속성 및 매개 변수를 기반으로 Blob Container Service SAS(공유 액세스 서명) URI를 생성합니다. SAS는 입력 사용자 위임 키로 서명됩니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas 참조

getAccessPolicy(ContainerGetAccessPolicyOptions)

지정된 컨테이너에 대한 사용 권한을 가져옵니다. 권한은 컨테이너 데이터에 공개적으로 액세스할 수 있는지 여부를 나타냅니다.

경고: 구문 분석이 시작되고 expiresOn 문자열이 만료될 때 JavaScript 날짜의 전체 자릿수가 손실될 수 있습니다. 예를 들어 새 날짜("2018-12-31T03:44:23.8827891Z").toISOString()은 "2018-12-31T03:44:23.882Z"를 가져옵니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/get-container-acl 참조

getAccountInfo(ContainerGetAccountInfoOptions)

계정 정보 가져오기 작업은 지정된 계정에 대한 sku 이름 및 계정 종류를 반환합니다. 계정 정보 가져오기 작업은 버전 2018-03-28부터 서비스 버전에서 사용할 수 있습니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/get-account-information 참조

getAppendBlobClient(string)

AppendBlobClient 만듭니다.

getBlobBatchClient()

배치 작업을 수행하기 위해 BlobBatchClient 개체를 만듭니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch 참조

getBlobClient(string)

BlobClient 만듭니다.

getBlobLeaseClient(string)

컨테이너에서 임대를 관리하는 BlobLeaseClient 가져옵니다.

getBlockBlobClient(string)

BlockBlobClient 만듭니다.

getPageBlobClient(string)

PageBlobClient 만듭니다.

getProperties(ContainerGetPropertiesOptions)

지정된 컨테이너에 대한 모든 사용자 정의 메타데이터 및 시스템 속성을 반환합니다. 반환된 데이터에는 컨테이너의 Blob 목록이 포함되지 않습니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/get-container-properties 참조

경고: 응답에서 반환된 metadata 개체에는 원래 대문자가 포함되어 있더라도 해당 키가 소문자로 표시됩니다. 이는 원래 대/소문자를 유지하는 listContainers 옵션을 사용하여 BlobServiceClientincludeMetadata 메서드에서 반환하는 메타데이터 키와 다릅니다.

listBlobsByHierarchy(string, ContainerListBlobsOptions)

계층별로 모든 Blob을 나열하는 비동기 반복기를 반환합니다. 지정된 계정 아래에 있습니다.

.byPage()는 비동기 반복 반복기를 반환하여 페이지의 계층 구조별로 Blob을 나열합니다.

for await 구문을 사용하는 예제:

for await (const item of containerClient.listBlobsByHierarchy("/")) {
  if (item.kind === "prefix") {
    console.log(`\tBlobPrefix: ${item.name}`);
  } else {
    console.log(`\tBlobItem: name - ${item.name}`);
  }
}

iter.next()을(를) 사용하는 예제:

let iter = containerClient.listBlobsByHierarchy("/", { prefix: "prefix1/" });
let entity = await iter.next();
while (!entity.done) {
  let item = entity.value;
  if (item.kind === "prefix") {
    console.log(`\tBlobPrefix: ${item.name}`);
  } else {
    console.log(`\tBlobItem: name - ${item.name}`);
  }
  entity = await iter.next();
}

byPage()을(를) 사용하는 예제:

console.log("Listing blobs by hierarchy by page");
for await (const response of containerClient.listBlobsByHierarchy("/").byPage()) {
  const segment = response.segment;
  if (segment.blobPrefixes) {
    for (const prefix of segment.blobPrefixes) {
      console.log(`\tBlobPrefix: ${prefix.name}`);
    }
  }
  for (const blob of response.segment.blobItems) {
    console.log(`\tBlobItem: name - ${blob.name}`);
  }
}

최대 페이지 크기로 페이징을 사용하는 예제:

console.log("Listing blobs by hierarchy by page, specifying a prefix and a max page size");

let i = 1;
for await (const response of containerClient
  .listBlobsByHierarchy("/", { prefix: "prefix2/sub1/" })
  .byPage({ maxPageSize: 2 })) {
  console.log(`Page ${i++}`);
  const segment = response.segment;

  if (segment.blobPrefixes) {
    for (const prefix of segment.blobPrefixes) {
      console.log(`\tBlobPrefix: ${prefix.name}`);
    }
  }

  for (const blob of response.segment.blobItems) {
    console.log(`\tBlobItem: name - ${blob.name}`);
  }
}
listBlobsFlat(ContainerListBlobsOptions)

지정된 계정의 모든 Blob을 나열하는 비동기 반복기를 반환합니다.

.byPage()는 비동기 반복 반복기를 반환하여 페이지에 Blob을 나열합니다.

for await 구문을 사용하는 예제:

// Get the containerClient before you run these snippets,
// Can be obtained from `blobServiceClient.getContainerClient("<your-container-name>");`
let i = 1;
for await (const blob of containerClient.listBlobsFlat()) {
  console.log(`Blob ${i++}: ${blob.name}`);
}

iter.next()을(를) 사용하는 예제:

let i = 1;
let iter = containerClient.listBlobsFlat();
let blobItem = await iter.next();
while (!blobItem.done) {
  console.log(`Blob ${i++}: ${blobItem.value.name}`);
  blobItem = await iter.next();
}

byPage()을(를) 사용하는 예제:

// passing optional maxPageSize in the page settings
let i = 1;
for await (const response of containerClient.listBlobsFlat().byPage({ maxPageSize: 20 })) {
  for (const blob of response.segment.blobItems) {
    console.log(`Blob ${i++}: ${blob.name}`);
  }
}

표식과 함께 페이징을 사용하는 예제:

let i = 1;
let iterator = containerClient.listBlobsFlat().byPage({ maxPageSize: 2 });
let response = (await iterator.next()).value;

// Prints 2 blob names
for (const blob of response.segment.blobItems) {
  console.log(`Blob ${i++}: ${blob.name}`);
}

// Gets next marker
let marker = response.continuationToken;

// Passing next marker as continuationToken

iterator = containerClient.listBlobsFlat().byPage({ continuationToken: marker, maxPageSize: 10 });
response = (await iterator.next()).value;

// Prints 10 blob names
for (const blob of response.segment.blobItems) {
  console.log(`Blob ${i++}: ${blob.name}`);
}
setAccessPolicy(PublicAccessType, SignedIdentifier[], ContainerSetAccessPolicyOptions)

지정된 컨테이너에 대한 사용 권한을 설정합니다. 권한은 컨테이너의 Blob에 공개적으로 액세스할 수 있는지 여부를 나타냅니다.

컨테이너에 대한 사용 권한을 설정하면 기존 사용 권한이 바뀝니다. 액세스 또는 containerAcl이 제공되지 않으면 기존 컨테이너 ACL이 제거됩니다.

컨테이너에 저장된 액세스 정책을 설정하는 경우 적용하는 데 최대 30초가 걸릴 수 있습니다. 이 간격 동안 저장된 액세스 정책과 연결된 공유 액세스 서명은 액세스 정책이 활성화될 때까지 상태 코드 403(사용할 수 없음)과 함께 실패합니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/set-container-acl 참조

setMetadata(Metadata, ContainerSetMetadataOptions)

지정된 컨테이너에 대해 하나 이상의 사용자 정의 이름-값 쌍을 설정합니다.

옵션이 제공되지 않거나 매개 변수에 정의된 메타데이터가 없으면 컨테이너 메타데이터가 제거됩니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/set-container-metadata 참조

uploadBlockBlob(string, RequestBodyType, number, BlockBlobUploadOptions)

새 블록 Blob을 만들거나 기존 블록 Blob의 콘텐츠를 업데이트합니다.

기존 블록 Blob을 업데이트하면 Blob의 기존 메타데이터가 덮어씁니다. 부분 업데이트는 지원되지 않습니다. 기존 Blob의 콘텐츠를 새 콘텐츠로 덮어씁니다. 블록 Blob의 부분 업데이트를 수행하려면 stageBlock 사용하고 commitBlockList.

병렬이 아닌 업로드 방법입니다. 동시성 업로드를 통해 성능을 향상시키려면 uploadFile, uploadStream 또는 uploadBrowserData 사용하세요.

https://docs.microsoft.com/rest/api/storageservices/put-blob 참조

생성자 세부 정보

ContainerClient(string, PipelineLike)

ContainerClient의 인스턴스를 만듭니다. 이 메서드는 컨테이너를 가리키는 URL을 허용합니다. 인코딩된 URL 문자열은 두 번 이스케이프되지 않으며 URL 경로의 특수 문자만 이스케이프됩니다. Blob 이름에 ? 또는 %BLOB 이름을 URL에 인코딩해야 합니다.

new ContainerClient(url: string, pipeline: PipelineLike)

매개 변수

url

string

Azure Storage 컨테이너를 가리키는 URL 문자열(예: "https://myaccount.blob.core.windows.net/mycontainer")입니다. AnonymousCredential을 사용하는 경우 SAS를 추가할 수 있습니다(예: "https://myaccount.blob.core.windows.net/mycontainer?sasString").

pipeline
PipelineLike

newPipeline()을 호출하여 기본 파이프라인을 만들거나 사용자 지정된 파이프라인을 제공합니다.

ContainerClient(string, StorageSharedKeyCredential | AnonymousCredential | TokenCredential, StoragePipelineOptions)

ContainerClient의 인스턴스를 만듭니다. 이 메서드는 컨테이너를 가리키는 URL을 허용합니다. 인코딩된 URL 문자열은 두 번 이스케이프되지 않으며 URL 경로의 특수 문자만 이스케이프됩니다. Blob 이름에 ? 또는 %BLOB 이름을 URL에 인코딩해야 합니다.

new ContainerClient(url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)

매개 변수

url

string

Azure Storage 컨테이너를 가리키는 URL 문자열(예: "https://myaccount.blob.core.windows.net/mycontainer")입니다. AnonymousCredential을 사용하는 경우 SAS를 추가할 수 있습니다(예: "https://myaccount.blob.core.windows.net/mycontainer?sasString").

credential

StorageSharedKeyCredential | AnonymousCredential | TokenCredential

AnonymousCredential, StorageSharedKeyCredential 또는 서비스에 대한 요청을 인증하는 @azure/identity 패키지의 자격 증명과 같은 TokenCredential 인터페이스를 구현하는 개체를 제공할 수도 있습니다. 지정하지 않으면 AnonymousCredential이 사용됩니다.

options
StoragePipelineOptions

선택적. HTTP 파이프라인을 구성하는 옵션입니다.

ContainerClient(string, string, StoragePipelineOptions)

ContainerClient의 인스턴스를 만듭니다.

new ContainerClient(connectionString: string, containerName: string, options?: StoragePipelineOptions)

매개 변수

connectionString

string

Azure Storage 계정의 계정 연결 문자열 또는 SAS 연결 문자열입니다. [ 참고 - 계정 연결 문자열은 NODE.JS 런타임에서만 사용할 수 있습니다. ] 계정 연결 문자열 예제 - DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net SAS 연결 문자열 예제 - BlobEndpoint=https://myaccount.blob.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString

containerName

string

컨테이너 이름입니다.

options
StoragePipelineOptions

선택적. HTTP 파이프라인을 구성하는 옵션입니다.

속성 세부 정보

containerName

컨테이너의 이름입니다.

string containerName

속성 값

string

상속된 속성 세부 정보

accountName

accountName: string

속성 값

string

StorageClient.accountName에서 상속된

credential

AnonymousCredential, StorageSharedKeyCredential 또는 서비스에 대한 요청을 인증하는 @azure/identity 패키지의 자격 증명과 같은 TokenCredential 인터페이스를 구현하는 개체를 제공할 수도 있습니다. 지정하지 않으면 AnonymousCredential이 사용됩니다.

credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential

속성 값

StorageClient.credential에서 상속된

url

인코딩된 URL 문자열 값입니다.

url: string

속성 값

string

StorageClient.url에서 상속된

메서드 세부 정보

create(ContainerCreateOptions)

지정된 계정 아래에 새 컨테이너를 만듭니다. 이름이 같은 컨테이너가 이미 있는 경우 작업이 실패합니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/create-container 명명 규칙 참조: https://learn.microsoft.com/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata 참조

function create(options?: ContainerCreateOptions): Promise<ContainerCreateResponse>

매개 변수

options
ContainerCreateOptions

컨테이너 만들기 작업에 대한 옵션입니다.

사용 예:

const containerClient = blobServiceClient.getContainerClient("<container name>");
const createContainerResponse = await containerClient.create();
console.log("Container was created successfully", createContainerResponse.requestId);

반환

createIfNotExists(ContainerCreateOptions)

지정된 계정 아래에 새 컨테이너를 만듭니다. 이름이 같은 컨테이너가 이미 있는 경우 변경되지 않습니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/create-container 명명 규칙 참조: https://learn.microsoft.com/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata 참조

function createIfNotExists(options?: ContainerCreateOptions): Promise<ContainerCreateIfNotExistsResponse>

매개 변수

반환

delete(ContainerDeleteMethodOptions)

삭제할 지정된 컨테이너를 표시합니다. 컨테이너와 컨테이너 내에 포함된 모든 Blob은 나중에 가비지 수집 중에 삭제됩니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/delete-container 참조

function delete(options?: ContainerDeleteMethodOptions): Promise<ContainerDeleteResponse>

매개 변수

options
ContainerDeleteMethodOptions

컨테이너 삭제 작업에 대한 옵션입니다.

반환

deleteBlob(string, ContainerDeleteBlobOptions)

삭제할 지정된 Blob 또는 스냅샷을 표시합니다. Blob은 나중에 가비지 수집 중에 삭제됩니다. Blob을 삭제하려면 모든 스냅샷을 삭제해야 합니다. Blob 삭제 작업과 동시에 둘 다 삭제할 수 있습니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/delete-blob 참조

function deleteBlob(blobName: string, options?: ContainerDeleteBlobOptions): Promise<BlobDeleteResponse>

매개 변수

blobName

string

options
ContainerDeleteBlobOptions

Blob 삭제 작업에 대한 옵션입니다.

반환

블록 Blob 삭제 응답 데이터입니다.

deleteIfExists(ContainerDeleteMethodOptions)

지정된 컨테이너가 있는 경우 삭제할 컨테이너를 표시합니다. 컨테이너와 컨테이너 내에 포함된 모든 Blob은 나중에 가비지 수집 중에 삭제됩니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/delete-container 참조

function deleteIfExists(options?: ContainerDeleteMethodOptions): Promise<ContainerDeleteIfExistsResponse>

매개 변수

options
ContainerDeleteMethodOptions

컨테이너 삭제 작업에 대한 옵션입니다.

반환

exists(ContainerExistsOptions)

이 클라이언트가 나타내는 Azure 컨테이너 리소스가 있으면 true를 반환합니다. false이면 false입니다.

참고: 다른 클라이언트 또는 애플리케이션에서 기존 컨테이너를 삭제할 수 있기 때문에 이 함수를 주의해서 사용합니다. 그 반대의 경우도 마찬가지입니다. 이 함수가 완료된 후에는 이름이 같은 새 컨테이너가 다른 클라이언트 또는 애플리케이션에 의해 추가될 수 있습니다.

function exists(options?: ContainerExistsOptions): Promise<boolean>

매개 변수

반환

Promise<boolean>

findBlobsByTags(string, ContainerFindBlobByTagsOptions)

지정된 컨테이너 아래에 지정된 태그가 있는 모든 Blob을 찾는 비동기 반복기를 반환합니다.

.byPage()는 비동기 반복 반복기를 반환하여 페이지에 Blob을 나열합니다.

for await 구문을 사용하는 예제:

let i = 1;
for await (const blob of containerClient.findBlobsByTags("tagkey='tagvalue'")) {
  console.log(`Blob ${i++}: ${blob.name}`);
}

iter.next()을(를) 사용하는 예제:

let i = 1;
const iter = containerClient.findBlobsByTags("tagkey='tagvalue'");
let blobItem = await iter.next();
while (!blobItem.done) {
  console.log(`Blob ${i++}: ${blobItem.value.name}`);
  blobItem = await iter.next();
}

byPage()을(를) 사용하는 예제:

// passing optional maxPageSize in the page settings
let i = 1;
for await (const response of containerClient.findBlobsByTags("tagkey='tagvalue'").byPage({ maxPageSize: 20 })) {
  if (response.blobs) {
    for (const blob of response.blobs) {
      console.log(`Blob ${i++}: ${blob.name}`);
    }
  }
}

표식과 함께 페이징을 사용하는 예제:

let i = 1;
let iterator = containerClient.findBlobsByTags("tagkey='tagvalue'").byPage({ maxPageSize: 2 });
let response = (await iterator.next()).value;

// Prints 2 blob names
if (response.blobs) {
  for (const blob of response.blobs) {
    console.log(`Blob ${i++}: ${blob.name}`);
  }
}

// Gets next marker
let marker = response.continuationToken;
// Passing next marker as continuationToken
iterator = containerClient
  .findBlobsByTags("tagkey='tagvalue'")
  .byPage({ continuationToken: marker, maxPageSize: 10 });
response = (await iterator.next()).value;

// Prints blob names
if (response.blobs) {
  for (const blob of response.blobs) {
     console.log(`Blob ${i++}: ${blob.name}`);
  }
}
function findBlobsByTags(tagFilterSqlExpression: string, options?: ContainerFindBlobByTagsOptions): PagedAsyncIterableIterator<FilterBlobItem, ContainerFindBlobsByTagsSegmentResponse, PageSettings>

매개 변수

tagFilterSqlExpression

string

where 매개 변수를 사용하면 호출자가 태그가 지정된 식과 일치하는 Blob을 쿼리할 수 있습니다. Blob이 결과에 반환되려면 지정된 식이 true로 평가되어야 합니다. [OData - ABNF] 필터 구문 규칙은 where 쿼리 매개 변수의 값에 대한 정식 문법을 정의합니다. 그러나 OData 필터 구문의 하위 집합만 Blob 서비스에서 지원됩니다.

options
ContainerFindBlobByTagsOptions

태그별로 Blob을 찾는 옵션입니다.

반환

generateSasStringToSign(ContainerGenerateSasUrlOptions)

공유 키 자격 증명을 사용하여 생성된 ContainerClient에만 사용할 수 있습니다.

전달된 클라이언트 속성 및 매개 변수를 기반으로 Blob Container Service SAS(공유 액세스 서명) URI에 서명하는 문자열을 생성합니다. SAS는 클라이언트의 공유 키 자격 증명으로 서명됩니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas 참조

function generateSasStringToSign(options: ContainerGenerateSasUrlOptions): string

매개 변수

options
ContainerGenerateSasUrlOptions

선택적 매개 변수입니다.

반환

string

이 클라이언트가 나타내는 리소스에 대한 URI로 구성된 SAS URI와 생성된 SAS 토큰이 뒤따릅니다.

generateSasUrl(ContainerGenerateSasUrlOptions)

공유 키 자격 증명을 사용하여 생성된 ContainerClient에만 사용할 수 있습니다.

전달된 클라이언트 속성 및 매개 변수를 기반으로 Blob Container Service SAS(공유 액세스 서명) URI를 생성합니다. SAS는 클라이언트의 공유 키 자격 증명으로 서명됩니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas 참조

function generateSasUrl(options: ContainerGenerateSasUrlOptions): Promise<string>

매개 변수

options
ContainerGenerateSasUrlOptions

선택적 매개 변수입니다.

반환

Promise<string>

이 클라이언트가 나타내는 리소스에 대한 URI로 구성된 SAS URI와 생성된 SAS 토큰이 뒤따릅니다.

generateUserDelegationSasStringToSign(ContainerGenerateSasUrlOptions, UserDelegationKey)

전달된 클라이언트 속성 및 매개 변수를 기반으로 Blob Container Service SAS(공유 액세스 서명) URI에 서명하는 문자열을 생성합니다. SAS는 입력 사용자 위임 키로 서명됩니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas 참조

function generateUserDelegationSasStringToSign(options: ContainerGenerateSasUrlOptions, userDelegationKey: UserDelegationKey): string

매개 변수

options
ContainerGenerateSasUrlOptions

선택적 매개 변수입니다.

userDelegationKey
UserDelegationKey

blobServiceClient.getUserDelegationKey() 반환 값

반환

string

이 클라이언트가 나타내는 리소스에 대한 URI로 구성된 SAS URI와 생성된 SAS 토큰이 뒤따릅니다.

generateUserDelegationSasUrl(ContainerGenerateSasUrlOptions, UserDelegationKey)

전달된 클라이언트 속성 및 매개 변수를 기반으로 Blob Container Service SAS(공유 액세스 서명) URI를 생성합니다. SAS는 입력 사용자 위임 키로 서명됩니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas 참조

function generateUserDelegationSasUrl(options: ContainerGenerateSasUrlOptions, userDelegationKey: UserDelegationKey): Promise<string>

매개 변수

options
ContainerGenerateSasUrlOptions

선택적 매개 변수입니다.

userDelegationKey
UserDelegationKey

blobServiceClient.getUserDelegationKey() 반환 값

반환

Promise<string>

이 클라이언트가 나타내는 리소스에 대한 URI로 구성된 SAS URI와 생성된 SAS 토큰이 뒤따릅니다.

getAccessPolicy(ContainerGetAccessPolicyOptions)

지정된 컨테이너에 대한 사용 권한을 가져옵니다. 권한은 컨테이너 데이터에 공개적으로 액세스할 수 있는지 여부를 나타냅니다.

경고: 구문 분석이 시작되고 expiresOn 문자열이 만료될 때 JavaScript 날짜의 전체 자릿수가 손실될 수 있습니다. 예를 들어 새 날짜("2018-12-31T03:44:23.8827891Z").toISOString()은 "2018-12-31T03:44:23.882Z"를 가져옵니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/get-container-acl 참조

function getAccessPolicy(options?: ContainerGetAccessPolicyOptions): Promise<ContainerGetAccessPolicyResponse>

매개 변수

options
ContainerGetAccessPolicyOptions

컨테이너 액세스 정책 가져오기 작업에 대한 옵션입니다.

반환

getAccountInfo(ContainerGetAccountInfoOptions)

계정 정보 가져오기 작업은 지정된 계정에 대한 sku 이름 및 계정 종류를 반환합니다. 계정 정보 가져오기 작업은 버전 2018-03-28부터 서비스 버전에서 사용할 수 있습니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/get-account-information 참조

function getAccountInfo(options?: ContainerGetAccountInfoOptions): Promise<ContainerGetAccountInfoResponse>

매개 변수

options
ContainerGetAccountInfoOptions

서비스 계정 정보 가져오기 작업에 대한 옵션입니다.

반환

서비스 계정 정보 가져오기 작업에 대한 응답 데이터입니다.

getAppendBlobClient(string)

AppendBlobClient 만듭니다.

function getAppendBlobClient(blobName: string): AppendBlobClient

매개 변수

blobName

string

추가 Blob 이름

반환

getBlobBatchClient()

배치 작업을 수행하기 위해 BlobBatchClient 개체를 만듭니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/blob-batch 참조

function getBlobBatchClient(): BlobBatchClient

반환

이 컨테이너에 대한 새 BlobBatchClient 개체입니다.

getBlobClient(string)

BlobClient 만듭니다.

function getBlobClient(blobName: string): BlobClient

매개 변수

blobName

string

Blob 이름

반환

지정된 Blob 이름에 대한 새 BlobClient 개체입니다.

getBlobLeaseClient(string)

컨테이너에서 임대를 관리하는 BlobLeaseClient 가져옵니다.

function getBlobLeaseClient(proposeLeaseId?: string): BlobLeaseClient

매개 변수

proposeLeaseId

string

처음 제안된 임대 ID입니다.

반환

컨테이너에서 임대를 관리하기 위한 새 BlobLeaseClient 개체입니다.

getBlockBlobClient(string)

BlockBlobClient 만듭니다.

function getBlockBlobClient(blobName: string): BlockBlobClient

매개 변수

blobName

string

블록 Blob 이름

사용 예:

const content = "Hello world!";

const blockBlobClient = containerClient.getBlockBlobClient("<blob name>");
const uploadBlobResponse = await blockBlobClient.upload(content, content.length);

반환

getPageBlobClient(string)

PageBlobClient 만듭니다.

function getPageBlobClient(blobName: string): PageBlobClient

매개 변수

blobName

string

페이지 Blob 이름

반환

getProperties(ContainerGetPropertiesOptions)

지정된 컨테이너에 대한 모든 사용자 정의 메타데이터 및 시스템 속성을 반환합니다. 반환된 데이터에는 컨테이너의 Blob 목록이 포함되지 않습니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/get-container-properties 참조

경고: 응답에서 반환된 metadata 개체에는 원래 대문자가 포함되어 있더라도 해당 키가 소문자로 표시됩니다. 이는 원래 대/소문자를 유지하는 listContainers 옵션을 사용하여 BlobServiceClientincludeMetadata 메서드에서 반환하는 메타데이터 키와 다릅니다.

function getProperties(options?: ContainerGetPropertiesOptions): Promise<ContainerGetPropertiesResponse>

매개 변수

options
ContainerGetPropertiesOptions

컨테이너 속성 가져오기 작업에 대한 옵션입니다.

반환

listBlobsByHierarchy(string, ContainerListBlobsOptions)

계층별로 모든 Blob을 나열하는 비동기 반복기를 반환합니다. 지정된 계정 아래에 있습니다.

.byPage()는 비동기 반복 반복기를 반환하여 페이지의 계층 구조별로 Blob을 나열합니다.

for await 구문을 사용하는 예제:

for await (const item of containerClient.listBlobsByHierarchy("/")) {
  if (item.kind === "prefix") {
    console.log(`\tBlobPrefix: ${item.name}`);
  } else {
    console.log(`\tBlobItem: name - ${item.name}`);
  }
}

iter.next()을(를) 사용하는 예제:

let iter = containerClient.listBlobsByHierarchy("/", { prefix: "prefix1/" });
let entity = await iter.next();
while (!entity.done) {
  let item = entity.value;
  if (item.kind === "prefix") {
    console.log(`\tBlobPrefix: ${item.name}`);
  } else {
    console.log(`\tBlobItem: name - ${item.name}`);
  }
  entity = await iter.next();
}

byPage()을(를) 사용하는 예제:

console.log("Listing blobs by hierarchy by page");
for await (const response of containerClient.listBlobsByHierarchy("/").byPage()) {
  const segment = response.segment;
  if (segment.blobPrefixes) {
    for (const prefix of segment.blobPrefixes) {
      console.log(`\tBlobPrefix: ${prefix.name}`);
    }
  }
  for (const blob of response.segment.blobItems) {
    console.log(`\tBlobItem: name - ${blob.name}`);
  }
}

최대 페이지 크기로 페이징을 사용하는 예제:

console.log("Listing blobs by hierarchy by page, specifying a prefix and a max page size");

let i = 1;
for await (const response of containerClient
  .listBlobsByHierarchy("/", { prefix: "prefix2/sub1/" })
  .byPage({ maxPageSize: 2 })) {
  console.log(`Page ${i++}`);
  const segment = response.segment;

  if (segment.blobPrefixes) {
    for (const prefix of segment.blobPrefixes) {
      console.log(`\tBlobPrefix: ${prefix.name}`);
    }
  }

  for (const blob of response.segment.blobItems) {
    console.log(`\tBlobItem: name - ${blob.name}`);
  }
}
function listBlobsByHierarchy(delimiter: string, options?: ContainerListBlobsOptions): PagedAsyncIterableIterator<({ kind: "prefix" } & BlobPrefix) | ({ kind: "blob" } & BlobItem), ContainerListBlobHierarchySegmentResponse, PageSettings>

매개 변수

delimiter

string

가상 계층을 정의하는 데 사용되는 문자 또는 문자열입니다.

options
ContainerListBlobsOptions

Blob 작업을 나열하는 옵션입니다.

반환

listBlobsFlat(ContainerListBlobsOptions)

지정된 계정의 모든 Blob을 나열하는 비동기 반복기를 반환합니다.

.byPage()는 비동기 반복 반복기를 반환하여 페이지에 Blob을 나열합니다.

for await 구문을 사용하는 예제:

// Get the containerClient before you run these snippets,
// Can be obtained from `blobServiceClient.getContainerClient("<your-container-name>");`
let i = 1;
for await (const blob of containerClient.listBlobsFlat()) {
  console.log(`Blob ${i++}: ${blob.name}`);
}

iter.next()을(를) 사용하는 예제:

let i = 1;
let iter = containerClient.listBlobsFlat();
let blobItem = await iter.next();
while (!blobItem.done) {
  console.log(`Blob ${i++}: ${blobItem.value.name}`);
  blobItem = await iter.next();
}

byPage()을(를) 사용하는 예제:

// passing optional maxPageSize in the page settings
let i = 1;
for await (const response of containerClient.listBlobsFlat().byPage({ maxPageSize: 20 })) {
  for (const blob of response.segment.blobItems) {
    console.log(`Blob ${i++}: ${blob.name}`);
  }
}

표식과 함께 페이징을 사용하는 예제:

let i = 1;
let iterator = containerClient.listBlobsFlat().byPage({ maxPageSize: 2 });
let response = (await iterator.next()).value;

// Prints 2 blob names
for (const blob of response.segment.blobItems) {
  console.log(`Blob ${i++}: ${blob.name}`);
}

// Gets next marker
let marker = response.continuationToken;

// Passing next marker as continuationToken

iterator = containerClient.listBlobsFlat().byPage({ continuationToken: marker, maxPageSize: 10 });
response = (await iterator.next()).value;

// Prints 10 blob names
for (const blob of response.segment.blobItems) {
  console.log(`Blob ${i++}: ${blob.name}`);
}
function listBlobsFlat(options?: ContainerListBlobsOptions): PagedAsyncIterableIterator<BlobItem, ContainerListBlobFlatSegmentResponse, PageSettings>

매개 변수

options
ContainerListBlobsOptions

Blob을 나열하는 옵션입니다.

반환

페이징을 지원하는 asyncIterableIterator입니다.

setAccessPolicy(PublicAccessType, SignedIdentifier[], ContainerSetAccessPolicyOptions)

지정된 컨테이너에 대한 사용 권한을 설정합니다. 권한은 컨테이너의 Blob에 공개적으로 액세스할 수 있는지 여부를 나타냅니다.

컨테이너에 대한 사용 권한을 설정하면 기존 사용 권한이 바뀝니다. 액세스 또는 containerAcl이 제공되지 않으면 기존 컨테이너 ACL이 제거됩니다.

컨테이너에 저장된 액세스 정책을 설정하는 경우 적용하는 데 최대 30초가 걸릴 수 있습니다. 이 간격 동안 저장된 액세스 정책과 연결된 공유 액세스 서명은 액세스 정책이 활성화될 때까지 상태 코드 403(사용할 수 없음)과 함께 실패합니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/set-container-acl 참조

function setAccessPolicy(access?: PublicAccessType, containerAcl?: SignedIdentifier[], options?: ContainerSetAccessPolicyOptions): Promise<ContainerSetAccessPolicyResponse>

매개 변수

access
PublicAccessType

컨테이너의 데이터에 대한 공용 액세스 수준입니다.

containerAcl

SignedIdentifier[]

각각 고유한 ID와 액세스 정책의 세부 정보를 갖는 요소의 배열입니다.

options
ContainerSetAccessPolicyOptions

컨테이너 설정 액세스 정책 작업에 대한 옵션입니다.

반환

setMetadata(Metadata, ContainerSetMetadataOptions)

지정된 컨테이너에 대해 하나 이상의 사용자 정의 이름-값 쌍을 설정합니다.

옵션이 제공되지 않거나 매개 변수에 정의된 메타데이터가 없으면 컨테이너 메타데이터가 제거됩니다.

https://docs.microsoft.com/en-us/rest/api/storageservices/set-container-metadata 참조

function setMetadata(metadata?: Metadata, options?: ContainerSetMetadataOptions): Promise<ContainerSetMetadataResponse>

매개 변수

metadata
Metadata

기존 메타데이터를 이 값으로 대체합니다. 제공된 값이 없으면 기존 메타데이터가 제거됩니다.

options
ContainerSetMetadataOptions

컨테이너 메타데이터 설정 작업에 대한 옵션입니다.

반환

uploadBlockBlob(string, RequestBodyType, number, BlockBlobUploadOptions)

새 블록 Blob을 만들거나 기존 블록 Blob의 콘텐츠를 업데이트합니다.

기존 블록 Blob을 업데이트하면 Blob의 기존 메타데이터가 덮어씁니다. 부분 업데이트는 지원되지 않습니다. 기존 Blob의 콘텐츠를 새 콘텐츠로 덮어씁니다. 블록 Blob의 부분 업데이트를 수행하려면 stageBlock 사용하고 commitBlockList.

병렬이 아닌 업로드 방법입니다. 동시성 업로드를 통해 성능을 향상시키려면 uploadFile, uploadStream 또는 uploadBrowserData 사용하세요.

https://docs.microsoft.com/rest/api/storageservices/put-blob 참조

function uploadBlockBlob(blobName: string, body: RequestBodyType, contentLength: number, options?: BlockBlobUploadOptions): Promise<{ blockBlobClient: BlockBlobClient, response: BlockBlobUploadResponse }>

매개 변수

blobName

string

만들거나 업데이트할 블록 Blob의 이름입니다.

body
HttpRequestBody

Blob, string, ArrayBuffer, ArrayBufferView 또는 오프셋이 데이터 원본에서 시작하는 새 읽기 가능한 스트림을 반환하는 함수입니다.

contentLength

number

본문 길이(바이트)입니다. Buffer.byteLength()를 사용하여 Base64/Hex로 인코딩된 문자가 아닌 문자열의 본문 길이를 계산합니다.

options
BlockBlobUploadOptions

블록 Blob 업로드 작업을 구성하는 옵션입니다.

반환

Promise<{ blockBlobClient: BlockBlobClient, response: BlockBlobUploadResponse }>

블록 Blob 업로드 응답 데이터 및 해당 BlockBlobClient 인스턴스.