Nahrání souborů do úložiště objektů blob v Azure pomocí AzCopy
Soubory a adresáře můžete nahrát do úložiště objektů blob pomocí nástroje příkazového řádku AzCopy v10.
Příklady pro jiné typy úloh, jako je stahování objektů blob, synchronizace se službou Blob Storage nebo kopírování objektů blob mezi účty, najdete v odkazech uvedených v části Další kroky tohoto článku.
Začínáme
Přečtěte si článek Začínáme s nástrojem AzCopy a stáhněte si AzCopy a seznamte se s způsoby, jak službě úložiště poskytnout přihlašovací údaje pro autorizaci.
Poznámka:
V příkladech v tomto článku se předpokládá, že jste pomocí ID Microsoft Entra zadali přihlašovací údaje pro autorizaci.
Pokud byste raději k autorizaci přístupu k datům objektů blob použili token SAS, můžete tento token připojit k adrese URL prostředku v každém příkazu AzCopy. Například: 'https://<storage-account-name>.blob.core.windows.net/<container-name><SAS-token>'
.
Vytvoření kontejneru
K vytvoření kontejneru můžete použít příkaz azcopy make .
Tip
Tento příklad uzavře argumenty cesty do jednoduchých uvozovek ('' ). Použití jednoduchých uvozovek ve všech příkazových prostředích s výjimkou prostředí Windows Command Shell (cmd.exe). Pokud používáte prostředí Windows Command Shell (cmd.exe), uzavřete argumenty cesty do dvojitých uvozovek ("") místo jednoduchých uvozovek ('' ).
Syntaxe
azcopy make 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>'
Příklad
azcopy make 'https://mystorageaccount.blob.core.windows.net/mycontainer'
Příklad (koncový bod Data Lake Storage)
azcopy make 'https://mystorageaccount.dfs.core.windows.net/mycontainer'
Podrobné referenční dokumenty najdete v tématu azcopy make.
Odeslání souboru
Nahrajte soubor pomocí příkazu azcopy copy .
Tip
Tento příklad uzavře argumenty cesty do jednoduchých uvozovek ('' ). Použití jednoduchých uvozovek ve všech příkazových prostředích s výjimkou prostředí Windows Command Shell (cmd.exe). Pokud používáte prostředí Windows Command Shell (cmd.exe), uzavřete argumenty cesty do dvojitých uvozovek ("") místo jednoduchých uvozovek ('' ).
Syntaxe
azcopy copy '<local-file-path>' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<blob-name>'
Příklad
azcopy copy 'C:\myDirectory\myTextFile.txt' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myTextFile.txt'
Příklad (koncový bod Data Lake Storage)
azcopy copy 'C:\myDirectory\myTextFile.txt' 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myTextFile.txt'
Soubor můžete nahrát také pomocí zástupné znaky (*) kdekoli v cestě k souboru nebo názvu souboru. Příklad: 'C:\myDirectory\*.txt'
nebo C:\my*\*.txt
.
Nahrání adresáře
Nahrajte adresář pomocí příkazu azcopy copy .
Tento příklad zkopíruje adresář (a všechny soubory v tomto adresáři) do kontejneru objektů blob. Výsledkem je adresář v kontejneru se stejným názvem.
Tip
Tento příklad uzavře argumenty cesty do jednoduchých uvozovek ('' ). Použití jednoduchých uvozovek ve všech příkazových prostředích s výjimkou prostředí Windows Command Shell (cmd.exe). Pokud používáte prostředí Windows Command Shell (cmd.exe), uzavřete argumenty cesty do dvojitých uvozovek ("") místo jednoduchých uvozovek ('' ).
Syntaxe
azcopy copy '<local-directory-path>' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' --recursive
Příklad
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --recursive
Příklad (koncový bod Data Lake Storage)
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.dfs.core.windows.net/mycontainer' --recursive
Pokud chcete zkopírovat do adresáře v rámci kontejneru, stačí zadat název tohoto adresáře v příkazovém řetězci.
Příklad
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory' --recursive
Příklad (koncový bod Data Lake Storage)
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myBlobDirectory' --recursive
Pokud zadáte název adresáře, který v kontejneru neexistuje, AzCopy vytvoří nový adresář podle tohoto názvu.
Nahrání obsahu adresáře
Pomocí příkazu azcopy copy nahrajte obsah adresáře. K nahrání obsahu bez kopírování samotného adresáře použijte zástupný znak (*).
Tip
Tento příklad uzavře argumenty cesty do jednoduchých uvozovek ('' ). Použití jednoduchých uvozovek ve všech příkazových prostředích s výjimkou prostředí Windows Command Shell (cmd.exe). Pokud používáte prostředí Windows Command Shell (cmd.exe), uzavřete argumenty cesty do dvojitých uvozovek ("") místo jednoduchých uvozovek ('' ).
Syntaxe
azcopy copy '<local-directory-path>\*' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>/<directory-path>'
Příklad
azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/myBlobDirectory'
Příklad (koncový bod Data Lake Storage)
azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.dfs.core.windows.net/mycontainer/myBlobDirectory'
--recursive
Připojte příznak pro nahrání souborů ve všech podadresářích.
Nahrání konkrétních souborů
Konkrétní soubory můžete nahrát pomocí úplných názvů souborů, částečných názvů se zástupnými znaky (*) nebo pomocí kalendářních dat a časů.
Tip
Tyto příklady ohraničují argumenty cesty jednoduchými uvozovkami ('' ). Použití jednoduchých uvozovek ve všech příkazových prostředích s výjimkou prostředí Windows Command Shell (cmd.exe). Pokud používáte prostředí Windows Command Shell (cmd.exe), uzavřete argumenty cesty do dvojitých uvozovek ("") místo jednoduchých uvozovek ('' ).
Zadání několika úplných názvů souborů
Použijte příkaz azcopy copy s --include-path
možností. Jednotlivé názvy souborů oddělte středníkem (;
).
Syntaxe
azcopy copy '<local-directory-path>' 'https://<storage-account-name>.<blob or dfs>.core.windows.net/<container-name>' --include-path <semicolon-separated-file-list>
Příklad
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --include-path 'photos;documents\myFile.txt' --recursive'
Příklad (koncový bod Data Lake Storage)
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.dfs.core.windows.net/mycontainer' --include-path 'photos;documents\myFile.txt' --recursive'
V tomto příkladu C:\myDirectory\photos
AzCopy přenese adresář a C:\myDirectory\documents\myFile.txt
soubor. --recursive
Zahrňte možnost přenosu všech souborů v adresářiC:\myDirectory\photos
.
Soubory můžete také vyloučit pomocí této --exclude-path
možnosti. Další informace najdete v referenční dokumentaci k azcopy copy .
Použití zástupných znaků
Použijte příkaz azcopy copy s --include-pattern
možností. Zadejte částečné názvy, které obsahují zástupné znaky. Názvy oddělte středníkem (;
).
Syntaxe
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>
Příklad
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.blob.core.windows.net/mycontainer' --include-pattern 'myFile*.txt;*.pdf*'
Příklad (koncový bod Data Lake Storage)
azcopy copy 'C:\myDirectory' 'https://mystorageaccount.dfs.core.windows.net/mycontainer' --include-pattern 'myFile*.txt;*.pdf*'
Soubory můžete také vyloučit pomocí této --exclude-pattern
možnosti. Další informace najdete v referenční dokumentaci k azcopy copy .
--exclude-pattern
Možnosti --include-pattern
se vztahují pouze na názvy souborů, nikoli na cestu. Pokud chcete zkopírovat všechny textové soubory, které existují ve stromu adresáře, použijte -recursive
možnost získat celý adresářový strom a pak pomocí -include-pattern
a zadat *.txt
získat všechny textové soubory.
Nahrání souborů, které byly změněny před datem a časem nebo po nich
Použijte příkaz azcopy copy s možností --include-before
nebo --include-after
příkazem. Zadejte datum a čas ve formátu ISO-8601 (například: 2020-08-19T15:04:00Z
).
Následující příklady nahrají soubory, které byly změněny k zadanému datu nebo po tomto datu.
Syntaxe
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>
Příklad
azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.blob.core.windows.net/mycontainer/FileDirectory' --include-after '2020-08-19T15:04:00Z'
Příklad (koncový bod Data Lake Storage)
azcopy copy 'C:\myDirectory\*' 'https://mystorageaccount.dfs.core.windows.net/mycontainer/FileDirectory' --include-after '2020-08-19T15:04:00Z'
Podrobné referenční informace najdete v referenční dokumentaci k azcopy copy .
Nahrání se značkami indexu
Do cílového objektu blob můžete nahrát soubor a přidat značky indexu objektů blob.
Pokud používáte autorizaci Microsoft Entra, musí být instančnímu objektu zabezpečení přiřazena role Vlastník dat objektů blob úložiště nebo musí být udělena oprávnění k Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write
operaci poskytovatele prostředků Azure prostřednictvím vlastní role Azure. Pokud používáte token sdíleného přístupového podpisu (SAS), musí tento token poskytnout přístup ke značkům objektu t
blob prostřednictvím oprávnění SAS.
Pokud chcete přidat značky, použijte --blob-tags
možnost spolu s párem klíč-hodnota zakódovanou adresou URL.
Pokud například chcete přidat klíč my tag
a hodnotu my tag value
, přidejte --blob-tags='my%20tag=my%20tag%20value'
ho do cílového parametru.
Více indexových značek oddělte pomocí ampersandu (&
). Pokud například chcete přidat klíč my second tag
a hodnotu my second tag value
, bude --blob-tags='my%20tag=my%20tag%20value&my%20second%20tag=my%20second%20tag%20value'
úplný řetězec možnosti .
Následující příklady ukazují, jak tuto možnost použít --blob-tags
.
Tip
Tento příklad uzavře argumenty cesty do jednoduchých uvozovek ('' ). Použití jednoduchých uvozovek ve všech příkazových prostředích s výjimkou prostředí Windows Command Shell (cmd.exe). Pokud používáte prostředí Windows Command Shell (cmd.exe), uzavřete argumenty cesty do dvojitých uvozovek ("") místo jednoduchých uvozovek ('' ).
Odeslání souboru
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'
Nahrání adresáře
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'
Nahrání obsahu adresáře
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'
Poznámka:
Pokud zadáte adresář pro zdroj, všechny objekty blob, které se zkopírují do cíle, budou mít stejné značky, které zadáte v příkazu.
Nahrání s volitelnými příznaky
Operaci nahrávání můžete upravit pomocí volitelných příznaků. Tady je několik příkladů.
Scénář | Příznak |
---|---|
Nahrání souborů jako doplňovacích objektů blob nebo objektů blob stránky: | --blob-type=[BlockBlob|PageBlob|AppendBlob] |
Nahrání do konkrétní úrovně přístupu (například do archivní úrovně): | --block-blob-tier=[None|Horké |Studená|Archiv] |
Úplný seznam najdete v možnostech.
Další kroky
Další příklady najdete v těchto článcích:
- Příklady: Stažení
- Příklady: Kopírování mezi účty
- Příklady: Synchronizovat
- Příklady: Kontejnery Amazon S3
- Příklady: Google Cloud Storage
- Příklady: Soubory Azure
- Kurz: Migrace místních dat do cloudového úložiště pomocí AzCopy
Informace o konfiguraci nastavení, optimalizaci výkonu a řešení potíží najdete v těchto článcích: