크게 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
데이터 전송에 활용되는 동시 스레드 수 설정
개발예제 소스
'기술(Azure 만...) > [MS]Azure기본' 카테고리의 다른 글
Azure 모니터링 기능 심화탐구 (0) | 2019.05.30 |
---|---|
IaaS 가상서버 자동 shutdown 가능 케이스(원인) (0) | 2019.05.30 |
ACR Azure Container Registry (0) | 2019.05.09 |
Azure Storage 일반 (0) | 2019.05.04 |
네트워크 트래픽 분석, bandwidth 사용현황이 궁금하면 (0) | 2019.05.03 |