View a markdown version of this page

Gunakan Amazon S3 sebagai PowerShell drive - Alat AWS untuk PowerShell (versi 5)

Versi 5 (V5) Alat AWS untuk PowerShell telah dirilis!

Untuk informasi tentang mengubah perubahan dan memigrasikan aplikasi Anda, lihat topik https://docs.aws.amazon.com/powershell/v5/userguide/migrating-v5.html migrasi.

Orange button with text "Click here for details".

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Gunakan Amazon S3 sebagai PowerShell drive

Berlaku untuk: AWS.Tools.S3 5.0.288 dan yang lebih baru. Penyedia drive S3 dan cmdlet-nya dikirimkan dalam AWS.Tools.S3 modul, yang berjalan pada Windows PowerShell 5.1 dan PowerShell 7+ (Windows, Linux, macOS).

PowerShell Drive S3 memungkinkan Anda memasang penyimpanan Amazon S3 sebagai drive dan bekerja dengannya dengan cara yang sama seperti Anda bekerja dengan disk lokal. Setelah Anda memasang drive, penyedia menyajikan bucket dan awalan sebagai folder dan objek sebagai file. Perintah navigasi umum bekerja langsung terhadap S3, termasuk Set-LocationGet-ChildItem,,Get-Content,Set-Content, danRemove-Item.

Topik ini mencakup menginstal, memasang, menavigasi, mentransfer konten, dan melepas pemasangan, ditambah perilaku kredensi, Wilayah, dan keamanan untuk drive S3.

Pemisah jalur berbeda berdasarkan platform

Contoh dalam topik ini digunakan / sebagai pemisah jalur, yang diterima drive di setiap platform. Pada Windows drive juga menerima\, jadi S3:\amzn-s3-demo-bucket\reports dan S3:/amzn-s3-demo-bucket/reports setara di sana. Di Linux dan macOS hanya / pemisah, jadi gunakan formulir itu dalam skrip yang berjalan di lebih dari satu platform. Jalur yang dikembalikan drive, sepertiPSPath, menggunakan pemisah asli sistem operasi: \ pada Windows dan / di Linux dan macOS.

Prasyarat

  • AWS.Tools.S3Modul, 5.0.288 atau yang lebih baru. Instal langsung dari PowerShell Galeri (ini juga menarik keter AWS.Tools.Common gantungannya):

    Install-Module -Name AWS.Tools.S3 -MinimumVersion 5.0.288

    Atau, jika Anda mengelola alat modular dengan AWS.Tools.Installer modul, instal terlebih dahulu dan kemudian gunakanInstall-AWSToolsModule:

    Install-Module -Name AWS.Tools.Installer # provides Install-AWSToolsModule Install-AWSToolsModule AWS.Tools.S3

    Penyedia drive dan cmdlet-nya dikirimkan ke dalam. AWS.Tools.S3 Tidak diperlukan instalasi tambahan.

  • AWS kredenSIAL dikonfigurasi dengan cara yang sama seperti untuk setiap cmdlet S3 (profil bernama, variabel lingkungan, peran IAM, atau SSO). Untuk informasi selengkapnya, lihat Memulai dengan Alat AWS untuk PowerShell.

Mengimpor modul mendaftarkan PowerShell penyedia bernamaAWS.S3. Anda dapat mengonfirmasi bahwa itu tersedia:

Get-PSProvider AWS.S3

Pasang drive

Gunakan Mount-S3PSDrive untuk membuat drive. -NameParameter menjadi nama drive di setiap jalur (misalnya, -Name S3 memberi Anda jalur sepertiS3:/amzn-s3-demo-bucket/reports/index.txt).

# Mount an S3: drive using a named profile and Region Mount-S3PSDrive -Name S3 -ProfileName my-profile -Region us-east-1 # List buckets Get-ChildItem S3:/

Contoh output:

Type LastModified Size Name ---- ------------ ---- ---- Bucket 2026-06-02 09:14:03 amzn-s3-demo-app-logs Bucket 2026-01-08 16:47:51 amzn-s3-demo-reports

Jika Anda telah menetapkan default sesi dengan Set-AWSCredential danSet-DefaultAWSRegion, Anda dapat memasang tanpa parameter lain:

Set-AWSCredential -ProfileName my-profile Set-DefaultAWSRegion us-west-2 Mount-S3PSDrive -Name S3

Mount-S3PSDriveadalah pembungkus tipis di atas PowerShell built-inNew-PSDrive. Jika mau, Anda dapat membuat drive secara langsung dan meneruskan parameter kredensi dan Wilayah yang sama:

New-PSDrive -Name S3 -PSProvider AWS.S3 -Root '' -Scope Global -ProfileName my-profile -Region us-east-1
Menggunakan New-PSDrive langsung

Lul -Scope Global us saat Anda menggunakan New-PSDrive secara langsung. Tanpa itu drive dibuat dalam lingkup saat ini dan menghilang ketika cakupan itu keluar (misalnya, ketika skrip atau fungsi yang membuatnya kembali). Mount-S3PSDriveset -Scope Global untuk Anda.

Secara default tidak Mount-S3PSDrive menghasilkan output. Tambahkan -PassThru jika Anda ingin PSDriveInfo objek kembali.

Nama parameter kredensi

Parameter kredensi diberi nama-AWSCredential, bukan-Credential. New-PSDrivesudah didefinisikan -Credential sebagai aPSCredential, yang merupakan tipe yang berbeda, sehingga drive S3 menggunakan nama yang berbeda untuk menghindari tabrakan.

Bagaimana kredenSIAL dan Wilayah diselesaikan

Drive S3 mengautentikasi dan memilih Wilayah persis seperti yang dilakukan cmdlet S3: parameter eksplisit terlebih dahulu, kemudian default sesi ditetapkan oleh Set-AWSCredential danSet-DefaultAWSRegion, kemudian sumber profil, lingkungan, dan instance-metadata dari rantai default SDK. Untuk urutan resolusi lengkap, lihat Menggunakan AWS Kredensial danTentukan AWS Wilayah untuk Alat AWS untuk PowerShell.

Jika tidak ada yang memasok Wilayah, drive akan kembali keus-east-1. Wilayah yang Anda pasang hanya Region awal: satu drive dapat menjangkau bucket di seluruh Wilayah (lihatAkses bucket di seluruh Wilayah dari satu drive).

Profil yang buruk atau bucket atau awalan yang hilang gagal diMount-S3PSDrive. Beberapa kesalahan izin mungkin tidak muncul sampai Anda mengakses objek.

Navigasi Amazon S3 seperti drive lokal

Setelah Anda memasang drive, navigasikan dengan perintah PowerShell drive umum. S3 tidak memiliki folder asli, tetapi penyedia menyajikan awalan sebagai folder sehingga Anda dapat menavigasi mereka dengan cara yang sama.

# Change into a bucket, then a prefix Set-Location S3:/amzn-s3-demo-reports/2026 # List the current location Get-ChildItem

Contoh output:

Type LastModified Size Name ---- ------------ ---- ---- Folder q1 Folder q2 Object 2026-03-31 18:02:11 48210 summary.txt
# List a path without changing location Get-ChildItem S3:/amzn-s3-demo-bucket/reports/2026

Penyelesaian tab berfungsi untuk bucket, awalan, dan objek, sehingga Anda dapat menyelesaikan jalur tanpa memasukkan nama lengkap.

Get-ChildItemmengembalikan setiap item sebagai objek yang mengeksposName,, TypeSize, dan LastModified properti. Properti ini memungkinkan daftar menyalurkan langsung ke perintah seperti Where-Object danSort-Object. Typeadalah salah satuBucket,Folder, atauObject. Folder dan ember tidak memiliki ukuran.

# List the 10 largest objects with the prefix "2026" Get-ChildItem S3:/amzn-s3-demo-app-logs/2026 -Recurse | Where-Object Type -eq 'Object' | Sort-Object Size -Descending | Select-Object -First 10 Name, Size, LastModified

Perintah navigasi lainnya juga berfungsi pada drive:

# Retrieve the single item at an exact path (no children) Get-Item S3:/amzn-s3-demo-bucket/reports/index.txt # Test whether a path exists and whether it is a folder or an object Test-Path S3:/amzn-s3-demo-bucket/reports # -> True Test-Path S3:/amzn-s3-demo-bucket/reports -PathType Container # -> True (a prefix) Test-Path S3:/amzn-s3-demo-bucket/reports/index.txt -PathType Leaf # -> True (an object)
Alias perintah berbeda menurut sistem operasi

Ini PowerShell perilaku, bukan dorongan. Di Windows, Unix-style aliasls,rm, dan cat peta ke PowerShell cmdlet, berfungsi. ls S3:/amzn-s3-demo-bucket Di Linux dan macOS, PowerShell biarkan nama-nama tersebut terikat ke alat asli (/bin/ls/bin/rm,,/bin/cat), yang tidak mengenali jalur S3. Akibatnya, ls S3:/amzn-s3-demo-bucket menjalankan sistem ls dan gagal. Untuk skrip yang berjalan di setiap platform, gunakan nama cmdlet lengkap:Get-ChildItem,Remove-Item, dan. Get-Content (cddan dir dialias di semua platform, jadi itu berfungsi di mana-mana.)

Dengan-Recurse, item Name adalah kuncinya relatif terhadap awalan (sehingga dapat berisi/), dan nama daun yang sama dapat muncul di bawah awalan yang berbeda. Ketika Anda perlu mengidentifikasi item yang terdaftar secara jelas (misalnya, untuk memasukkannya ke depan), gunakan item tersebut daripada. PSPath Name

Memipa objek yang terdaftar dengan - AsByteStream pada Windows PowerShell 5.1

Perpipaan Get-ChildItem ke Get-Content -AsByteStream bisa gagal pada Windows PowerShell 5.1. Mesin mungkin mengikat -AsByteStream sebelum mengetahui input pipa adalah jalur S3, dan FileSystem penyedia di 5.1 tidak memiliki parameter seperti itu (lihatMembaca byte file lokal berbeda menurut edisi). Baca setiap item dengan eksplis PSPath itnya, yang berfungsi pada kedua edisi:

# Read each listed object by explicit PSPath Get-ChildItem S3:/amzn-s3-demo-bucket/prefix | ForEach-Object { Get-Content -LiteralPath $_.PSPath -AsByteStream -Raw }

Pada PowerShell 7+ pipa langsung berfungsi, tetapi formulir per item adalah default yang aman untuk skrip yang berjalan pada kedua edisi.

Daftar aman untuk diinterupsi

Listing mengalir saat setiap halaman hasil datang dari S3 dan aman untuk diinterupsi dengan Ctrl+C. Awalan dengan sejumlah besar objek mulai menghasilkan output segera alih-alih menunggu daftar lengkap selesai.

Karakter wildcard dalam kunci

Kunci S3 secara hukum dapat berisi karakter PowerShell wildcard ([,],*,?). Untuk mengatasi kunci seperti itu secara harfiah, gunakan -LiteralPath (didukung oleh Get-ItemGet-Content,Set-Content,, danRemove-Item), dengan cara yang sama yang Anda lakukan pada penyedia sistem file:

Get-Content -LiteralPath 'S3:/amzn-s3-demo-bucket/data[2026].csv' -Raw
Test-Path dan objek yang tidak dapat Anda baca

Test-Pathkembali $true untuk jalur yang tidak dapat Anda baca. Ini mengkonfirmasi jalur diselesaikan; itu tidak mengkonfirmasi bahwa Anda memiliki izin untuk membaca atau menulisnya.

Membaca objek dari S3

Get-Contentmengunduh objek. Secara default ia mengembalikan teks baris demi baris. Tambahkan -Raw untuk mengembalikan seluruh objek sebagai string tunggal. Kedu Get-Content anya dan Set-Content dukungan -Encoding untuk teks dan -AsByteStream untuk konten biner.

# Read an object line by line Get-Content S3:/amzn-s3-demo-reports/2026/summary.txt # Read the whole object as one string Get-Content S3:/amzn-s3-demo-reports/2026/summary.txt -Raw

Untuk objek non-teks, gunakan -AsByteStream untuk mendapatkan byte mentah. Pada jalur S3 ini berfungsi pada PowerShell 7+ dan Windows PowerShell 5.1 karena penyedia S3 menyediakan parameter. Hanya file lokal yang berbeda menurut edisi (lihatMembaca byte file lokal berbeda menurut edisi). Untuk mengontrol decoding teks, tambahkan -Encoding dengan salah satu nama PowerShell pengkodean standar (UTF8,UTF8BOM,Unicode,ASCII, dan seterusnya). Defaultnya adalah UTF-8 tanpa BOM, pada keduanya Get-Content danSet-Content.

# Read raw bytes Get-Content S3:/amzn-s3-demo-bucket/images/logo.png -AsByteStream -Raw # Decode as a specific text encoding Get-Content S3:/amzn-s3-demo-bucket/data/report.csv -Encoding UTF8

Get-Contentjuga menerima -PartSize untuk mengatur ukuran bagian un duhan multi bagian, dalam byte, antara minimal S3 5 MiB dan maksimum 5 GiB. Ini mencerminkan -PartSizeSet-Content, yang mengatur ukuran bagian unggahan (lihatUnggah objek yang sangat besar).

Membaca byte mentah menjadi variabel

Jika Anda memuat byte objek ke dalam variabel (untuk hash, mengukur, atau meneruskannya ke API lain), ratakan -AsByteStream hasilnya terlebih dahulu. Jika tidak, .Length dan perbandingan byte menghasilkan hasil yang salah:

$bytes = [byte[]]((Get-Content S3:/amzn-s3-demo-bucket/images/logo.png -AsByteStream -Raw) | ForEach-Object { $_ })

Pemipaan ke file atau perintah lain (misalnyaSet-Content -AsByteStream, seperti padaSalin objek antara S3 dan disk lokal) tidak memerlukan perataan.

Menulis objek ke S3

Set-Contentmengunggah (dan mengganti) objek.

# Write text Set-Content S3:/amzn-s3-demo-reports/2026/notes.txt -Value 'Draft complete' # Write several lines Set-Content S3:/amzn-s3-demo-bucket/notes/list.txt -Value @('alpha', 'beta', 'gamma') # Write raw bytes Set-Content S3:/amzn-s3-demo-bucket/images/logo.png -AsByteStream -Value $bytes

Unggahan memiliki opsi berikut:

Parameter Tujuan

-Encoding

Pengkodean teks untuk byte on-the-wire (default UTF-8, tidak ada BOM).

-NoNewline

Hilangkan baris baru di belakang setelah setiap nilai teks.

-StorageClass

Kelas penyimpanan untuk objek ini (misalnyaSTANDARD_IA,GLACIER).

-PartSize

Ukuran bagian multibagian untuk unggahan ini, dalam byte (antara minimal S3 5 MiB dan maksimum 5 GiB). Lihat Unggah objek yang sangat besar.

Anda dapat membatalkan unggahan kapan saja dengan Ctrl+C. Tidak ada yang dilakukan sampai unggahan selesai, jadi pembatalan tidak meninggalkan objek setengah tertulis menggantikan yang lama.

Upload teks menggunakan akhiran baris LF

Upload teks menggunakan akhiran baris LF, jadi objek yang ditulis di Windows, Linux, atau macOS identik byte. Ketika Anda membutuhkan kontrol yang tepat atas byte, gunakan-AsByteStream.

Unggah objek yang sangat besar

Setiap unggahan melalui drive adalah unggahan multipart, dan S3 membatasi unggahan multipart menjadi 10.000 bagian. Dengan ukuran bagian default 5 MiB yang membatasi satu objek sekitar 48 GiB, dan unggahan melewati batas kehabisan bagian dan gagal. Untuk mengunggah sesuatu yang lebih besar, naikkan -PartSize sehingga setidaknyaobject size / 10,000:

# Upload a ~200 GiB object with 64 MiB parts (200 GiB / 10,000 = 21 MiB, so 64 MiB is plenty) # PowerShell 7+ Get-Content ./huge.bin -AsByteStream -ReadCount 8MB | Set-Content S3:/amzn-s3-demo-bucket/archive/huge.bin -AsByteStream -PartSize 64MB # Windows PowerShell 5.1 (local read uses -Encoding Byte; the S3 write keeps -AsByteStream -PartSize) Get-Content ./huge.bin -Encoding Byte -ReadCount 8MB | Set-Content S3:/amzn-s3-demo-bucket/archive/huge.bin -AsByteStream -PartSize 64MB

-PartSizedan -StorageClass merupakan parameter tujuan S3. Gunakan mereka dengan jalur tujuan S3 eksplisit (seperti pada contoh sebelumnya), bukan dengan objek tujuan terikat pipeline.

-PartSizemenerima nilai antara minimal S3 5 MiB dan maksimum 5 GiB. Pada maksimum 5 GiB, 10.000 bagian mencakup objek terbesar yang didukung S3 (5 TiB).

Memilih ukuran bagian

Ukuran bagian yang lebih besar juga berarti lebih sedikit perjalanan pulang pergi untuk unggahan besar, tetapi setiap bagian dalam penerbangan disimpan dalam memori, sehingga bagian yang sangat besar menggunakan lebih banyak memori. 5 MiB hingga beberapa ratus MiB adalah kisaran yang masuk akal. Hanya naik lebih tinggi ketika ukuran objek membutuhkannya.

Salin objek antara S3 dan disk lokal

Menyal in dalam S3 dengan Copy-Item tidak didukung (lihatOperasi yang didukung dan tidak didukung). Untuk memindahkan data antara disk lokal Anda dan S3, masukkan konten melalui Get-Content danSet-Content.

Untuk data biner, baca dan tulis byte dengan tepat. Jal ur S3 digunakan -AsByteStream pada kedua PowerShell edisi; hanya sisi lokal yang berbeda, seperti yang dijelaskan dalamMembaca byte file lokal berbeda menurut edisi.

# Upload a local file (PowerShell 7+; on Windows PowerShell 5.1 the local read uses -Encoding Byte) Get-Content ./report.csv -AsByteStream -ReadCount 8MB | Set-Content S3:/amzn-s3-demo-bucket/data/report.csv -AsByteStream # Download to a local file (on Windows PowerShell 5.1 the local write uses -Encoding Byte) Get-Content S3:/amzn-s3-demo-bucket/data/report.csv -AsByteStream | Set-Content ./report.csv -AsByteStream
Gunakan mode byte di kedua ujungnya untuk data biner

Baca dan tulis byte di kedua ujungnya saat menyalin data biner. Dalam mode teks, konten diterjemahkan dan dikodekan ulang. Baris baru dinormalisasi atau ditambahkan untuk setiap baris, yang merusak data non-teks. Byte-mode pada baca dan tulis menyalin byte dengan tepat. Untuk file teks, plain Get-Content | Set-Content berfungsi, dengan satu pengecualian: mode teks menambahkan Set-Content trailing newline (LF) dan menormalkan akhir baris, sehingga salinannya tidak byte-for-byte identik dengan sumbernya. Ketika Anda membutuhkan salinan yang tepat, gunakan -AsByteStream di kedua ujungnya.

Membaca byte file lokal berbeda menurut edisi

Menargetkan file lokal menggunakan PowerShell FileSystem penyedia bawaan, dan penyedia itu tidak ada -AsByteStream di Windows PowerShell 5.1 (tiba di PowerShell 6). Gunakan di -Encoding Byte sana sebagai gantinya. Ini adalah batasan 5.1, bukan sesuatu yang dikendalikan drive S3; jalur S3 mengambil kedua -AsByteStream edisi.

Edisi Baca byte file lokal Tulis byte file lokal

PowerShell 7+

Get-Content $f -AsByteStream -ReadCount 8MB

Set-Content $f -AsByteStream

Windows PowerShell 5.1

Get-Content $f -Encoding Byte -ReadCount 8MB

Set-Content $f -Encoding Byte

Untuk S3-to-S3 salinan sisi server, gunakan cmdlet. Copy-S3Object

Hapus objek dan awalan

Remove-Itemmenghapus satu objek. Menghapus awalan (folder dengan konten) membutuhkan-Recurse, yang menghapus semua yang ada di bawahnya secara batch.

# Delete a single object Remove-Item S3:/amzn-s3-demo-bucket/notes/todo.txt # Delete a prefix and everything under it Remove-Item S3:/amzn-s3-demo-bucket/old-logs -Recurse

Apakah Remove-Item petunjuk tergantung pada apa yang Anda targetkan:

  • Satu objek, tanpa-Recurse: tidak ada prompt. Objek dihapus.

  • Awalan, dengan-Recurse: tanpa prompt. Segala sesuatu di bawah awalan dihapus.

  • Awalan yang tidak kosong, tanpa-Recurse: PowerShell meminta konfirmasi. Ini adalah perilaku container-has-children penyedia sistem file. Jika Anda mengonfirmasi, penghapusan akan berulang; jika Anda menolak, tidak ada yang dihapus. Di host non-interaktif, perintah itu memblokir. L -Recurse ulus untuk melanjutkan tanpa meminta.

Gunakan sak PowerShell elar asli untuk melihat pratinjau atau menghapus:

# Preview without deleting Remove-Item S3:/amzn-s3-demo-bucket/old-logs -Recurse -WhatIf # Ask for confirmation Remove-Item S3:/amzn-s3-demo-bucket/notes/todo.txt -Confirm
Versioning-enabled bucket menyimpan versi noncurrent

Pada bucket dengan Amazon S3 Versioning diaktifkan, lakukan Remove-Item penghapusan standar. Ini menambahkan penanda hapus dan menyembunyikan versi saat ini, tetapi tidak menghapus versi noncurrent, yang dipertahankan dan terus menimbulkan biaya penyimpanan. Untuk menghapus versi secara permanen, gunakan cmdlet S3 (misalnya, Remove-S3Object dengan ID versi) atau aturan Siklus Hidup Amazon S3.

Remove-Item -Recurse menghapus tanpa meminta

Remove-Item -Recursemenghapus setiap objek di bawah awalan tanpa prompt, sama sepertirm -r. Pada bucket tanpa versi, penghapusan rekursif bersifat permanen. Pada bucket yang diaktifkan versi, ia menambahkan penanda hapus seperti yang dijelaskan dalam catatan sebelumnya. Gunakan -WhatIf terlebih dahulu jika Anda tidak yakin apa yang akan dihapus.

Anda tidak dapat menghapus seluruh bucket melalui drive karena operasi siklus hidup bucket berada di luar cakupan. Gunakan Remove-S3Bucket sebagai gantinya.

Lingkup drive ke satu bucket atau awalan

Pasang dengan -Root untuk membatasi drive ke ember, atau awalan di dalam ember. Akar drive kemudian adalah lokasi itu, dan navigasi terbatas di bawahnya.

# Mount rooted at a bucket: the drive root lists the bucket's top-level entries Mount-S3PSDrive -Name Data -Root amzn-s3-demo-bucket -ProfileName my-profile -Region us-east-1 Get-ChildItem Data:/ # top-level keys in amzn-s3-demo-bucket Get-Content Data:/reports/index.txt # -> amzn-s3-demo-bucket/reports/index.txt # Mount rooted at a bucket + prefix Mount-S3PSDrive -Name Reports -Root amzn-s3-demo-reports/2026 -ProfileName my-profile -Region us-east-1 Get-ChildItem Reports:/ # contents of amzn-s3-demo-reports/2026/

Akarnya pasti sudah ada. Bucket atau awalan yang tidak ada gagal pemasangan. Karena jalur relatif tidak dapat naik di atas root (..diblokir oleh mesin), pemasangan cakupan memberi Anda tampilan terfokus dari tepat satu data proyek.

Akses bucket di seluruh Wilayah dari satu drive

Satu drive terpasang dapat menjangkau bucket di seluruh Wilayah. Saat pertama kali Anda menyentuh bucket, penyedia mencari Wilayah-nya dan merutekan panggilan berikutnya ke titik akhir yang tepat secara otomatis. Anda tidak memerlukan drive terpisah untuk setiap Wilayah.

# Mounted in us-east-1, but this bucket is in us-west-2 and commands work without extra configuration Mount-S3PSDrive -Name S3 -ProfileName my-profile -Region us-east-1 Get-ChildItem S3:/amzn-s3-demo-west-bucket Get-Content S3:/amzn-s3-demo-west-bucket/data/report.csv -Raw

Mengatur kelas penyimpanan default

Tetapkan kelas penyimpanan default di seluruh drive pada waktu pemasangan dengan. -StorageClass Setiap unggahan melalui drive itu menggunakan kelas yang ditentukan kecuali kelas tertentu Set-Content mengesampingkannya dengan miliknya sendiri-StorageClass.

# Set all uploads to default to STANDARD_IA Mount-S3PSDrive -Name Archive -ProfileName my-profile -Region us-east-1 -StorageClass STANDARD_IA Set-Content Archive:/amzn-s3-demo-bucket/cold/data.txt -Value '...' # STANDARD_IA Set-Content Archive:/amzn-s3-demo-bucket/hot/data.txt -Value '...' -StorageClass STANDARD # overrides to STANDARD

Melepas drive

Gunakan Dismount-S3PSDrive (pembungkus di atasRemove-PSDrive) untuk menghapus drive. Ubah ke lokasi lain terlebih dahulu, PowerShell karena tidak akan menghapus drive yang merupakan lokasi Anda saat ini.

Set-Location $HOME # or C:\ on Windows Dismount-S3PSDrive -Name S3

Operasi yang didukung dan tidak didukung

Gunakan drive untuk menelusuri dan memindahkan konten objek. Siklus hidup bucket dan operasi penyalinan sisi server tetap menggunakan cmdlet S3 khusus.

Didukung

  • Navigasi dan daftar:Set-Location, Get-ChildItem (termasuk-Recurse),, Get-ItemTest-Path, penyelesaian tab

  • Konten: Get-Content (unduh), Set-Content (unggah)

  • Penghapusan: Remove-Item (objek tunggal; awalan dengan-Recurse)

  • Memiapkan item yang terdaftar ke Get-Content dan Remove-Item

Tidak didukung

Perintah Mengapa/apa yang harus digunakan sebagai gantinya

Copy-Item

S3-to-S3 salinan tidak diekspos melalui drive. Gunakan Copy-S3Object untuk salinan sisi server. Untuk Local-to-S3 atau S3-to-local transfer, pipa. Get-Content | Set-Content

Move-Item, Rename-Item

S3 tidak memiliki penggantian nama. Lakukan copy + delete dengan cmdlet.

New-Item(direktori)

S3 tidak memiliki folder nyata. Awalan muncul saat Anda menulis objek di bawahnya.

Clear-Content, Add-Content

Objek ditulis utuh olehSet-Content. Tidak ada penambahan atau penghapusan di tempat.

Get-ItemProperty, Set-ItemProperty, Clear-ItemProperty

Drive tidak mengimplementasikan antarmuka PowerShell properti, jadi perintah ini gagal dengan kesalahan antarmuka PowerShell mesin sendiri yang tidak didukung alih-alih pesan drive. Barang-barang yang Get-ChildItem dan Get-Item dikembalikan hanya membawaName,Type,Size, danLastModified. Untuk membaca atau mengatur metadata objek S3, gunakan Get-S3ObjectMetadata atau Write-S3Object.

Membuat atau menghapus bucket

Gunakan New-S3Bucket/Remove-S3Bucket.

Perintah yang tidak didukung gagal dengan pesan yang memberi nama perintah dan menunjuk ke alternatif - misalnya, "tidak Copy-Item didukung oleh drive S3. Gunakan Copy-S3Object, atau pipa Get-Content ke Set-Content.” Per *-ItemProperty intah adalah pengecualian, seperti yang dijelaskan dalam tabel sebelumnya.

Referensi perintah

Untuk daftar parameter lengkap untuk Mount-S3PSDrive dan Dismount-S3PSDrive, lihat Referensi Alat AWS untuk PowerShell Cmdlet.

Pada jalur S3, drive juga menambahkan parameter dinamis ke Get-Content dan Set-Content PowerShell dokumentasi untuk cmdlet tersebut tidak mencakup:

Perintah Parameter

Get-Content

-AsByteStream, -Raw, -Encoding, -PartSize

Set-Content

-AsByteStream,-Encoding,-NoNewline,-StorageClass, -PartSize (lihatUnggah objek yang sangat besar)

Pemecahan masalah

“Tidak dapat menurunkan drive karena sedang digunakan.”

Drive S3 adalah lokasi saat ini. Ubah ke lokasi di drive lain, seperti$HOME, dan kemudian jalankan Dismount-S3PSDrive lagi.

Pemasangan gagal dengan “root tidak ditemukan atau tidak dapat dijangkau.”

Bucket atau awalan di -Root tidak ada. Periksa nama (dan Wilayah, jika bucket ada di salah satu tempat kredenSIAL Anda tidak default). Keg agalan kre densi menghasilkan kesalahan yang berbeda, bukan pesan “tidak dapat dijangkau” ini. Kesalahan izin pada root mungkin tidak muncul sampai Anda mengakses objek, jadi pemasangan yang berhasil tidak menjamin bahwa Anda dapat membaca setiap jalur di bawahnya.

Menghapus awalan yang tidak kosong tergantung di skrip.

Ini terjadi ketika Anda menghapus awalan yang tidak kosong tanpa -Recurse. Mesin PowerShell memunculkan prompt konfirmasi karena awalan memiliki turunan (perilaku container-has-children penyedia sistem file). Host non-interaktif tidak dapat menjawab prompt, sehingga perintah diblokir.

Lul -Recurse us untuk menghapus konten awalan tanpa meminta, atau konfirmasikan secara interaktif untuk melanjutkan. (tidak -Force dikonsultasikan oleh jalur penghapusan drive, jadi tidak berpengaruh di sini.)

“Objek yang baru saja saya ubah di luar drive masih menunjukkan daftar lama.”

Daftar di-cache sebentar (sekitar satu detik) untuk menjaga navigasi tetap cepat. Perubahan yang dilakukan melalui drive segera muncul. Perubahan yang dibuat oleh alat lain muncul setelah cache pendek berakhir.

“Sebuah kunci berisi garis miring terbalik.”

Apakah drive dapat menangani kunci yang berisi garis miring terbalik tergantung pada sistem operasi, karena drive menerima pemisah jalur asli platform:

  • Windows - \ adalah pemisah jalur, sehingga drive membacanya sebagai satu dan menormalkannya/. Kunci yang berisi garis miring terbalik literal tidak dapat ditangani melalui drive. Gunakan cmdlet S3 sebagai gantinya, misalnya Get-S3Object atau. Read-S3Object

  • Linux dan macOS - hanya / pemisah jalur. Garis miring terbalik adalah karakter biasa dalam kunci, sehingga drive menangani kunci tersebut secara normal.