AzCopy를 사용하여 Azure Blob Storage에 파일 업로드

AzCopy v10 명령줄 유틸리티를 사용하여 Blob Storage에 파일 및 디렉터리를 업로드할 수 있습니다.

Blob 다운로드, Blob Storage와 동기화 또는 계정 간에 Blob 복사와 같은 다른 유형의 작업에 대한 예제를 보려면 이 문서의 다음 단계 섹션에 제공된 링크를 참조하세요.

시작하기

AzCopy를 다운로드하고 스토리지 서비스에 권한 부여 자격 증명을 제공할 수 있는 방법에 대해 알아보려면 AzCopy 시작 문서를 참조하세요.

참고 항목

이 문서의 예제에서는 Microsoft Entra ID를 사용하여 권한 부여 자격 증명을 제공했다고 가정합니다.

SAS 토큰을 사용하여 Blob 데이터에 대한 액세스 권한을 부여하려는 경우 각 AzCopy 명령의 리소스 URL에 해당 토큰을 추가할 수 있습니다. 예: 'https://<storage-account-name>.blob.core.windows.net/<container-name><SAS-token>'

컨테이너 만들기

azcopy make 명령을 사용하여 컨테이너를 만들 수 있습니다.

이 예에서는 경로 인수를 작은따옴표(‘’)로 묶습니다. Windows 명령 셸(cmd.exe)을 제외하고 모든 명령 셸에서 작은따옴표를 사용합니다. Windows 명령 셸(cmd.exe)을 사용하는 경우 작은따옴표(‘’) 대신 큰따옴표(“”)로 경로 인수를 묶습니다.

Syntax

azcopy make 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>'

예제

azcopy make 'https://mystorageaccount.blob.core.windows.net/mycontainer'

예제(Data Lake Storage 엔드포인트)

azcopy make 'https://mystorageaccount.dfs.core.windows.net/mycontainer'

자세한 참조 문서는 azcopy make를 참조하세요.

파일 업로드

azcopy copy 명령을 사용하여 파일을 업로드 합니다.

이 예에서는 경로 인수를 작은따옴표(‘’)로 묶습니다. Windows 명령 셸(cmd.exe)을 제외하고 모든 명령 셸에서 작은따옴표를 사용합니다. Windows 명령 셸(cmd.exe)을 사용하는 경우 작은따옴표(‘’) 대신 큰따옴표(“”)로 경로 인수를 묶습니다.

Syntax

azcopy copy '<local-file-path>' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<blob-name>'

예제

azcopy copy 'C:\myDirectory\myTextFile.txt' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myTextFile.txt'

예제(Data Lake Storage 엔드포인트)

azcopy copy 'C:\myDirectory\myTextFile.txt' 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myTextFile.txt'

파일 경로 또는 파일 이름에서 야생카드 기호(*)를 사용하여 파일을 업로드할 수도 있습니다. 예를 들면 'C:\myDirectory\*.txt' 또는 C:\my*\*.txt입니다.

디렉터리 업로드

azcopy copy 명령을 사용하여 디렉터리를 업로드 합니다.

이 예제에서는 디렉터리(및 해당 디렉터리의 모든 파일)를 Blob 컨테이너에 복사합니다. 결과는 컨테이너에 같은 이름으로 디렉터리가 생깁니다.

이 예에서는 경로 인수를 작은따옴표(‘’)로 묶습니다. Windows 명령 셸(cmd.exe)을 제외하고 모든 명령 셸에서 작은따옴표를 사용합니다. Windows 명령 셸(cmd.exe)을 사용하는 경우 작은따옴표(‘’) 대신 큰따옴표(“”)로 경로 인수를 묶습니다.

Syntax

azcopy copy '<local-directory-path>' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' --recursive

예제

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --recursive

예제(Data Lake Storage 엔드포인트)

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.dfs.core.windows.net/mycontainer' --recursive

컨테이너 내의 디렉터리에 복사하려면 명령 문자열에서 해당 디렉터리의 이름을 지정하기만 하면 됩니다.

예제

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory' --recursive

예제(Data Lake Storage 엔드포인트)

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myBlobDirectory' --recursive

컨테이너에 없는 디렉터리의 이름을 지정하는 경우 AzCopy는 해당 이름으로 새 디렉터리를 만듭니다.

디렉터리 콘텐츠 업로드

azcopy copy 명령을 사용하여 디렉터리의 콘텐츠를 업로드 합니다. 포함하는 디렉터리 자체를 복사하지 않고 콘텐츠를 업로드하려면 와일드카드 기호(*)를 사용합니다.

이 예에서는 경로 인수를 작은따옴표(‘’)로 묶습니다. Windows 명령 셸(cmd.exe)을 제외하고 모든 명령 셸에서 작은따옴표를 사용합니다. Windows 명령 셸(cmd.exe)을 사용하는 경우 작은따옴표(‘’) 대신 큰따옴표(“”)로 경로 인수를 묶습니다.

Syntax

azcopy copy '<local-directory-path>\*' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<directory-path>'

예제

azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory'

예제(Data Lake Storage 엔드포인트)

azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myBlobDirectory'

플래그를 --recursive 추가하여 모든 하위 디렉터리에 파일을 업로드합니다.

특정 파일 업로드

전체 파일 이름, 야생카드 문자(*)가 있는 부분 이름 또는 날짜 및 시간을 사용하여 특정 파일을 업로드할 수 있습니다.

이 예에서는 경로 인수를 작은따옴표(‘’)로 묶습니다. Windows 명령 셸(cmd.exe)을 제외하고 모든 명령 셸에서 작은따옴표를 사용합니다. Windows 명령 셸(cmd.exe)을 사용하는 경우 작은따옴표(‘’) 대신 큰따옴표(“”)로 경로 인수를 묶습니다.

여러 전체 파일 이름 지정

옵션과 함께 --include-path azcopy copy 명령을 사용합니다. 세미콜론(;)을 사용하여 개별 파일 이름을 구분합니다.

Syntax

azcopy copy '<local-directory-path>' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' --include-path <semicolon-separated-file-list>

예제

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --include-path 'photos;documents\myFile.txt' --recursive'

예제(Data Lake Storage 엔드포인트)

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.dfs.core.windows.net/mycontainer' --include-path 'photos;documents\myFile.txt' --recursive'

이 예에서 AzCopy는 C:\myDirectory\photos 디렉터리와 C:\myDirectory\documents\myFile.txt 파일을 전송합니다. --recursive 디렉터리의 모든 파일을 C:\myDirectory\photos 전송하는 옵션을 포함합니다.

--exclude-path 옵션을 사용하여 파일을 제외할 수도 있습니다. 자세히 알아보려면 azcopy copy 참조 문서를 확인하세요.

와일드카드 문자 사용

옵션과 함께 --include-pattern azcopy copy 명령을 사용합니다. 와일드카드 문자를 포함하는 부분 이름을 지정합니다. 세미콜론(;)을 사용하여 이름을 구분합니다.

Syntax

azcopy copy '<local-directory-path>' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' --include-pattern <semicolon-separated-file-list-with-wildcard-characters>

예제

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --include-pattern 'myFile*.txt;*.pdf*'

예제(Data Lake Storage 엔드포인트)

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.dfs.core.windows.net/mycontainer' --include-pattern 'myFile*.txt;*.pdf*'

--exclude-pattern 옵션을 사용하여 파일을 제외할 수도 있습니다. 자세히 알아보려면 azcopy copy 참조 문서를 확인하세요.

--include-pattern--exclude-pattern 옵션은 경로가 아닌 파일 이름에만 적용됩니다. 디렉터리 트리에 있는 모든 텍스트 파일을 복사하려면 -recursive 옵션을 사용하여 전체 디렉터리 트리를 가져온 다음 -include-pattern을 사용하고 *.txt를 지정하여 모든 텍스트 파일을 가져옵니다.

날짜 및 시간 전후에 수정된 파일 업로드

--include-before 또는 --include-after 옵션과 함께 azcopy copy 명령을 사용합니다. ISO-8601형식으로 날짜와 시간을 지정합니다(예: 2020-08-19T15:04:00Z).

다음 예에서는 지정한 날짜 또는 그 이후에 수정된 파일을 업로드합니다.

Syntax

azcopy copy '<local-directory-path>\*' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-or-directory-name>' --include-after <Date-Time-in-ISO-8601-format>

예제

azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory'  --include-after '2020-08-19T15:04:00Z'

예제(Data Lake Storage 엔드포인트)

azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.dfs.core.windows.net/mycontainer/FileDirectory'   --include-after '2020-08-19T15:04:00Z'

자세한 참조 는 azcopy copy 참조 문서를 참조하세요.

인덱스 태그를 사용하여 업로드

파일을 업로드하고 대상 Blob에 Blob 인덱스 태그를 추가할 수 있습니다.

Microsoft Entra 권한 부여를 사용하는 경우 보안 주체에 Storage Blob 데이터 소유자 역할이 할당되거나 사용자 지정 Azure 역할을 통해 Azure 리소스 공급자 작업에 대한 권한이 Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write부여되어야 합니다. SAS(공유 액세스 서명) 토큰을 사용하는 경우 해당 토큰은 SAS 권한을 통해 Blob의 태그에 t 대한 액세스를 제공해야 합니다.

태그를 추가하려면 URL로 인코딩된 키-값 쌍과 함께 옵션을 사용합니다 --blob-tags . 예를 들어 키 my tag 와 값을 my tag value추가하려면 대상 매개 변수에 추가 --blob-tags='my%20tag=my%20tag%20value' 합니다.

앰퍼샌드(&)를 사용하여 여러 인덱스 태그를 구분합니다. 예를 들어, my second tag 키와 my second tag value 값을 추가하려는 경우 전체 옵션 문자열은 --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'입니다.

다음 예제에서는 이 옵션을 사용하는 방법을 보여 줍니다 --blob-tags .

이 예에서는 경로 인수를 작은따옴표(‘’)로 묶습니다. Windows 명령 셸(cmd.exe)을 제외하고 모든 명령 셸에서 작은따옴표를 사용합니다. Windows 명령 셸(cmd.exe)을 사용하는 경우 작은따옴표(‘’) 대신 큰따옴표(“”)로 경로 인수를 묶습니다.

파일 업로드

azcopy copy 'C:\myDirectory\myTextFile.txt' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myTextFile.txt' --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'

디렉터리 업로드

azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --recursive --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'

디렉터리 콘텐츠 업로드

azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory' --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'

참고 항목

원본의 디렉터리를 지정하는 경우 대상에 복사되는 모든 Blob에는 명령에서 지정한 것과 같은 태그가 있습니다.

선택적 플래그를 사용하여 업로드

선택적 플래그를 사용하여 업로드 작업을 조정할 수 있습니다. 다음은 몇 가지 예제입니다.

시나리오 Flag
추가 Blob 또는 페이지 Blob으로 파일을 업로드합니다. --blob-type=[BlockBlob|PageBlob|AppendBlob]
특정 액세스 계층(예: 보관 계층)에 업로드합니다. --block-blob-tier=[None|Hot|Cool|Archive]

전체 목록을 보려면 옵션을 참조하세요.

다음 단계

다음 문서에서 더 많은 예제를 찾습니다.

설정을 구성하고, 성능을 최적화하고, 문제를 해결하려면 다음 문서를 참조하세요.