크게 3가지 방법

  • Azure CLI
  • AzCopy
  • .NET Storage Client라이브러리

 

 

Azure CLI

기본명령은 동기식

중간에 실패하면 다시 시작해야됨

계층구조 선택 불가

기존 파일 overwrite 안되게 옵션이 있음

-> --if-modified-since는 지정된 날짜 이후로 수정된 경우에만 Blob을 덮어쓰기

 

AzCopy

비동기식

작업 실패 실패지점에서 작업을 다시 시작 가능

대역폭 성능 지정 가능

패턴일치 기능을 통해 계층적 컨테이너 blob파일 선택 가능

기존 수정시간 체크는 못함. Overwrite해버림.

 

 

.NET Storage Client라이브러리

, 일회성은 아님.

관련 애플리케이션을 작성할 있는 라이브러리(개체 메서드 모음)

Blob 메타데이터에 대한 모든 권한 제공

, 수정시간 모두 조회 가능

.net 프레임워크 멀티태스킹 기능도 활용하여 개발가능

비동기식

 

 

실습 Azure CLI

스토리지 어카운트 생성

az storage account create \

  --location ukwest \

  --name myAccount \

  --resource-group myGroup \

  --sku Standard_RAGRS \

  --kind BlobStorage \

  --access-tier Hot

 

컨테이너생성

az storage container create \

  --name myContainer \

  --account-name myAccount \

  --account-key <storage account key>

 

스토리지 계정키 조회

az storage account keys list --account-name myAccount --resource-group myGroup --output table

 

업로드

az storage blob upload \

  --container-name myContainer \

  --name myBlob\

  --file blobdata.dat

 

--if-modified-since는 지정된 날짜 이후로 수정된 경우에만 Blob을 덮어쓰기

 

upload-batch 명령  패턴도 되네

az storage blob upload-batch \

  --destination myContainer \

  --source myFolder \

  --pattern *.bmp

 

 

업로드 끝났는지 리스트 확인

az storage blob list \

  --container-name myContainer \

  --output table

 

 

Azure 저장계정간 이동 *요건 비동기식이라네

az storage blob copy start \

  --destination-container destContainer \

  --destination-blob myBlob \

  --source-account-name mySourceAccount \

  --source-account-key mySourceAccountKey \

  --source-container myContainer \

  --source-blob myBlob

 

계정간 이동 (단체로 패턴지정 이동)

az storage blob copy start-batch \

  --destination-container destContainer \

  --source-account-name mySourceAccount \

  --source-account-key mySourceAccountKey \

  --source-container myContainer \

  --pattern *.dat

 

Blob파일 삭제

az storage blob delete \

  --container sourceContainer \

  --name sourceBlob

여기서도 역시 수정일자 매개변수 지정가능

 

6개월간 수정되지 않은 blob 파일 삭제

date=`date -d "6 months ago" '+%Y-%m-%dT%H:%MZ'`

az storage blob delete-batch \

  --source sourceContainer \

  --if-unmodified-since $date

 

 

CLI실습

 

6개월 이상 blob -> 보관스토리지로 이동

 

azcopy실습

azcopy copy myfile.txt https://myaccount.blob.core.windows.net/mycontainer/

 

azcopy copy myfile.txt https://myaccount.blob.core.windows.net/mycontainer/  ?<sas token>

 

SAS공유액세스토큰

시간제한있음, 특정작업만 허용

 

--recursive=true

폴더계층구조 탐색해라 옵션

azcopy copy myfolder https://myaccount.blob.core.windows.net/mycontainer/? token> --recursive=true

 

 

Job리스트 조회 세부확인

AzCopy jobs list

AzCopy jobs show <id>

 

 

다운로드

azcopy copy https://myaccount.blob.core.windows.net/mycontainer/myblob? token> myblobdata

 

다운로드도   --recursive=true 지정가능

 

스토리지 계정간 복사

azcopy copy https://sourceaccount.blob.core.windows.net/sourcecontainer/*? sas token> https://destaccount.blob.core.windows.net/destcontainer/*? sas token>

 

 

혹은 azcopy sync 명령

 

Blob 확인

./azcopy list https://sourceaccount.blob.core.windows.net/sourcecontainer? token>

 

 

제거,삭제

./azcopy remove https://myaccount.blob.core.windows.net/mycontainer? token> --include "*.txt" --recursive=true

 

 

AZCOPY_CONCURRENCY_VALUE 환경 변수를 설정

기본값 300

데이터 전송에 활용되는 동시 스레드 설정

 

 

개발예제 소스

https://docs.microsoft.com/ko-kr/learn/modules/copy-blobs-from-command-line-and-code/7-move-blobs-using-net-storage-client

 

 




+ Recent posts