다음을 통해 공유


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 Command Shell(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 Command Shell(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 Command Shell(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 Command Shell(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 명령을 사용합니다. 세미콜론(;)을 사용하여 개별 파일 이름을 구분합니다.

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 명령을 사용합니다. 와일드카드 문자를 포함하는 부분 이름을 지정합니다. 세미콜론(;)을 사용하여 이름을 구분합니다.

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 명령을 사용합니다. 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 권한 부여를 사용하는 경우 스토리지 Blob 데이터 소유자 역할을 보안 주체에 할당하거나 사용자 지정 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 Command Shell(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]

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

원본 및 대상 형식 지정

AzCopy는 --from-to 파이핑 시나리오 또는 에뮬레이터와 같이 자동 검색이 실패할 수 있는 경우 매개 변수를 사용하여 원본 및 대상 리소스 유형을 명시적으로 정의합니다. 이 매개 변수는 AzCopy가 전송의 컨텍스트를 이해하고 그에 따라 최적화하는 데 도움이 됩니다.

FromTo 값 Description
LocalBlob 로컬 파일 시스템에서 Azure Blob Storage로 업로드
LocalBlobFS 로컬 파일 시스템에서 Azure Data Lake Gen2(BlobFS)로 업로드
PipeBlob 파이프에서 Azure Blob Storage로 데이터 스트리밍
PipeFile 파이프에서 Azure File Storage로 데이터 스트리밍

다음 단계

다음 문서에서 더 많은 예제를 찾아보세요.

이러한 문서를 참조하여 설정을 구성하고, 성능을 최적화하고, 문제를 해결하세요.