Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menunjukkan cara menggunakan PowerShell untuk membuat dan mengelola direktori serta file di akun penyimpanan yang memiliki namespace hierarkis.
Untuk mempelajari tentang cara mendapatkan, mengatur, dan memperbarui daftar kontrol akses (ACL) direktori dan file, lihat Menggunakan PowerShell untuk mengelola ACL di Azure Data Lake Storage.
Referensi | Pemetaan Gen1 ke Gen2 | Memberikan umpan balik
Prasyarat
Langganan Azure. Untuk informasi selengkapnya, lihat Dapatkan uji coba gratis Azure.
Akun penyimpanan dengan namespace hierarkis aktif. Ikuti petunjuk berikut untuk membuatnya.
Terpasang .NET Framework versi 4.7.2 atau lebih tinggi. Untuk informasi selengkapnya, lihat Mengunduh .NET Framework.
Versi PowerShell
5.1
atau lebih tinggi.
Menginstal modul PowerShell
Verifikasi bahwa versi PowerShell yang diinstal adalah
5.1
atau lebih tinggi dengan menggunakan perintah berikut.echo $PSVersionTable.PSVersion.ToString()
Untuk memutakhirkan versi PowerShell Anda, lihat Memutakhirkan Windows PowerShell yang sudah ada
Pasang modul Az.Storage.
Install-Module Az.Storage -Repository PSGallery -Force
Untuk informasi selengkapnya tentang cara menginstal modul PowerShell, lihat Menginstal modul Azure PowerShell
Sambungkan ke akun
Buka jendela perintah Windows PowerShell, lalu masuk ke langganan Azure Anda dengan perintah Connect-AzAccount dan ikuti petunjuk di layar.
Connect-AzAccount
Jika identitas Anda dikaitkan dengan lebih dari satu langganan, dan Anda tidak diminta untuk memilih langganan, maka atur langganan aktif Anda ke langganan akun penyimpanan yang ingin Anda operasikan. Dalam contoh ini, menggantikan nilai
<subscription-id>
dengan ID langganan Anda.Select-AzSubscription -SubscriptionId <subscription-id>
Dapatkan konteks akun penyimpanan.
$ctx = New-AzStorageContext -StorageAccountName '<storage-account-name>' -UseConnectedAccount
Membuat kontainer
Kontainer bertindak sebagai sistem file untuk file Anda. Anda dapat membuatnya dengan menggunakan cmdlet New-AzStorageContainer .
Contoh ini membuat kontainer bernama my-file-system
.
$filesystemName = "my-file-system"
New-AzStorageContainer -Context $ctx -Name $filesystemName
Membuat direktori
Buat referensi direktori dengan menggunakan cmdlet New-AzDataLakeGen2Item .
Contoh ini menambahkan direktori bernama my-directory
ke kontainer.
$filesystemName = "my-file-system"
$dirname = "my-directory/"
New-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname -Directory
Contoh ini menambahkan direktori yang sama, sekaligus mengatur izin, umask, nilai properti, dan nilai metadata.
$dir = New-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname -Directory -Permission rwxrwxrwx -Umask ---rwx--- -Property @{"ContentEncoding" = "UDF8"; "CacheControl" = "READ"} -Metadata @{"tag1" = "value1"; "tag2" = "value2" }
Perlihatkan properti direktori
Contoh ini mendapatkan direktori dengan menggunakan cmdlet Get-AzDataLakeGen2Item , lalu mencetak nilai properti ke konsol.
$filesystemName = "my-file-system"
$dirname = "my-directory/"
$dir = Get-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname
$dir.ACL
$dir.Permissions
$dir.Group
$dir.Owner
$dir.Properties
$dir.Properties.Metadata
Catatan
Untuk mendapatkan direktori akar kontainer, hilangkan -Path
parameter.
Ganti nama atau pindahkan direktori
Ganti nama atau pindahkan direktori dengan menggunakan cmdlet Move-AzDataLakeGen2Item .
Contoh ini mengganti nama direktori dari nama my-directory
menjadi my-new-directory
.
$filesystemName = "my-file-system"
$dirname = "my-directory/"
$dirname2 = "my-new-directory/"
Move-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname -DestFileSystem $filesystemName -DestPath $dirname2
Catatan
Gunakan parameter -Force
jika Anda ingin menimpa tanpa perintah.
Contoh ini memindahkan direktori bernama my-directory
ke subdirektori my-directory-2
bernama my-subdirectory
.
$filesystemName = "my-file-system"
$dirname = "my-directory/"
$dirname2 = "my-directory-2/my-subdirectory/"
Move-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname -DestFileSystem $filesystemName -DestPath $dirname2
Hapus direktori
Hapus direktori dengan menggunakan cmdlet Remove-AzDataLakeGen2Item .
Contoh ini menghapus direktori bernama my-directory
.
$filesystemName = "my-file-system"
$dirname = "my-directory/"
Remove-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname
Anda dapat menggunakan parameter -Force
untuk menghapus file tanpa perintah.
Unduh dari direktori
Unduh file dari direktori dengan menggunakan cmdlet Get-AzDataLakeGen2ItemContent .
Contoh ini mengunduh file bernama upload.txt
dari direktori bernama my-directory
.
$filesystemName = "my-file-system"
$filePath = "my-directory/upload.txt"
$downloadFilePath = "download.txt"
Get-AzDataLakeGen2ItemContent -Context $ctx -FileSystem $filesystemName -Path $filePath -Destination $downloadFilePath
Daftar isi direktori
Cantumkan konten direktori dengan menggunakan cmdlet Get-AzDataLakeGen2ChildItem . Anda dapat menggunakan parameter opsional -OutputUserPrincipalName
untuk mendapatkan nama (bukan ID objek) pengguna.
Contoh ini mencantumkan konten direktori bernama my-directory
.
$filesystemName = "my-file-system"
$dirname = "my-directory/"
Get-AzDataLakeGen2ChildItem -Context $ctx -FileSystem $filesystemName -Path $dirname -OutputUserPrincipalName
Contoh berikut mencantumkan properti ACL
, Permissions
, Group
, dan Owner
setiap item dalam direktori.
-FetchProperty
Parameter diperlukan untuk mendapatkan nilai bagi ACL
properti.
$filesystemName = "my-file-system"
$dirname = "my-directory/"
$properties = Get-AzDataLakeGen2ChildItem -Context $ctx -FileSystem $filesystemName -Path $dirname -Recurse -FetchProperty
$properties.ACL
$properties.Permissions
$properties.Group
$properties.Owner
Catatan
Untuk mencantumkan konten direktori akar kontainer, hilangkan parameter -Path
.
Unggah file ke direktori
Unggah file ke direktori dengan menggunakan cmdlet New-AzDataLakeGen2Item .
Contoh ini mengunggah file yang bernama upload.txt
ke direktori bernama my-directory
.
$localSrcFile = "upload.txt"
$filesystemName = "my-file-system"
$dirname = "my-directory/"
$destPath = $dirname + (Get-Item $localSrcFile).Name
New-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $destPath -Source $localSrcFile -Force
Contoh ini mengunggah file yang sama, tetapi kemudian mengatur izin, umask, nilai properti, dan nilai metadata file tujuan. Contoh ini juga mencetak nilai-nilai ini ke konsol.
$file = New-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $destPath -Source $localSrcFile -Permission rwxrwxrwx -Umask ---rwx--- -Property @{"ContentEncoding" = "UDF8"; "CacheControl" = "READ"} -Metadata @{"tag1" = "value1"; "tag2" = "value2" }
$file1
$file1.Properties
$file1.Properties.Metadata
Catatan
Untuk mengunggah file ke direktori akar kontainer, hilangkan parameter -Path
.
Tampilkan properti file
Contoh ini mendapatkan file dengan menggunakan cmdlet Get-AzDataLakeGen2Item , lalu mencetak nilai properti ke konsol.
$filepath = "my-directory/upload.txt"
$filesystemName = "my-file-system"
$file = Get-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $filepath
$file
$file.ACL
$file.Permissions
$file.Group
$file.Owner
$file.Properties
$file.Properties.Metadata
Hapus sebuah file
Hapus file dengan menggunakan cmdlet Remove-AzDataLakeGen2Item .
Contoh ini menghapus file bernama upload.txt
.
$filesystemName = "my-file-system"
$filepath = "upload.txt"
Remove-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $filepath
Anda dapat menggunakan parameter -Force
untuk menghapus file tanpa perintah.
Pemetaan Gen1 ke Gen2
Tabel berikut ini memperlihatkan bagaimana cmdlet yang digunakan untuk Data Lake Storage Gen1 memetakan ke cmdlet untuk Data Lake Storage.
Catatan
Azure Data Lake Storage Gen1 sekarang dihentikan. Lihat pengumuman penghentian di sini. Sumber daya Data Lake Storage Gen1 tidak lagi dapat diakses. Jika Anda memerlukan bantuan khusus, silakan hubungi kami.
Cmdlet Azure Data Lake Storage Gen1 | Cmdlet Data Lake Storage | Catatan |
---|---|---|
Get-AzDataLakeStoreChildItem | Get-AzDataLakeGen2ChildItem | Secara default, cmdlet Get-AzDataLakeGen2ChildItem hanya mencantumkan item anak tingkat pertama. Parameter -Recurse mencantumkan item anak secara rekursif. |
Get-AzDataLakeStoreItem Get-AzDataLakeStoreItemAclEntry Get-AzDataLakeStoreItemOwner Get-AzDataLakeStoreItemPermission |
Get-AzDataLakeGen2Item | Item keluaran dari cmdlet Get-AzDataLakeGen2Item memiliki properti berikut: ACL, Pemilik, Grup, Izin. |
Get-AzDataLakeStoreItemContent | Get-AzDataLakeGen2FileContent | Cmdlet Get-AzDataLakeGen2FileContent mengunduh konten file ke file lokal. |
Move-AzDataLakeStoreItem | Move-AzDataLakeGen2Item | |
New-AzDataLakeStoreItem | New-AzDataLakeGen2Item | Cmdlet ini mengunggah konten file baru dari file lokal. |
Remove-AzDataLakeStoreItem | Remove-AzDataLakeGen2Item | |
Set-AzDataLakeStoreItemOwner Set-AzDataLakeStoreItemPermission Set-AzDataLakeStoreItemAcl |
Update-AzDataLakeGen2Item | Cmdlet Update-AzDataLakeGen2Item memperbarui satu item saja, dan tidak secara rekursif. Jika Anda ingin memperbarui secara rekursif, cantumkan item dengan menggunakan cmdlet Get-AzDataLakeStoreChildItem, lalu alur ke cmdlet Update-AzDataLakeGen2Item. |
Test-AzDataLakeStoreItem | Get-AzDataLakeGen2Item | Cmdlet Get-AzDataLakeGen2Item melaporkan kesalahan jika item tidak ada. |