A versão 5 (V5) do Ferramentas da AWS para PowerShell foi lançada!
Para obter informações sobre mudanças significativas e migrar seus aplicativos, consulte o tópico de migração.
As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Use o Amazon S3 como uma unidade PowerShell
Aplica-se a: AWS.Tools.S3 5.0.288 e versões posteriores. O provedor do drive S3 e seus cmdlets vêm no AWS.Tools.S3 módulo, que é executado no Windows PowerShell 5.1 e PowerShell 7+ (Windows, Linux, macOS).
O PowerShell drive S3 permite que você monte o armazenamento Amazon S3 como um drive e trabalhe com ele da mesma forma que você trabalha com um disco local. Depois de montar uma unidade, o provedor apresenta compartimentos e prefixos como pastas e objetos como arquivos. Os comandos de navegação comuns funcionam diretamente no S3Set-Location, incluindoGet-ChildItem,Get-Content,Set-Content, e. Remove-Item
Este tópico aborda a instalação, montagem, navegação, transferência de conteúdo e desmontagem, além da credencial, da região e do comportamento de segurança da unidade S3.
Os separadores de caminhos diferem de acordo com a plataforma
Os exemplos neste tópico são usados / como separador de caminho, que o drive aceita em todas as plataformas. No Windows, a unidade também aceita\, portanto, S3:\amzn-s3-demo-bucket\reports e S3:/amzn-s3-demo-bucket/reports são equivalentes lá. Somente no Linux e no macOS / há um separador, então use esse formulário em scripts que são executados em mais de uma plataforma. Os caminhos que o drive devolve, comoPSPath, usam o separador nativo do sistema operacional: \ no Windows, no Linux e / no macOS.
Pré-requisitos
-
O
AWS.Tools.S3módulo, 5.0.288 ou posterior. Instale-o diretamente da PowerShell Galeria (isso também extrai suaAWS.Tools.Commondependência):Install-Module -Name AWS.Tools.S3 -MinimumVersion 5.0.288Ou, se você gerenciar as ferramentas modulares com o
AWS.Tools.Installermódulo, instale-as primeiro e depois useInstall-AWSToolsModule:Install-Module -Name AWS.Tools.Installer # provides Install-AWSToolsModule Install-AWSToolsModule AWS.Tools.S3O provedor do drive e seus cmdlets são fornecidos internamente.
AWS.Tools.S3Nenhuma instalação adicional é necessária. -
AWS credenciais configuradas da mesma forma que para qualquer cmdlet do S3 (um perfil nomeado, variáveis de ambiente, uma função do IAM ou SSO). Para obter mais informações, consulte Comece com o Ferramentas da AWS para PowerShell.
A importação do módulo registra um PowerShell provedor chamado. AWS.S3 Você pode confirmar que ele está disponível:
Get-PSProvider AWS.S3
Monte uma unidade
Use Mount-S3PSDrive para criar uma unidade. O -Name parâmetro se torna o nome da unidade em cada caminho (por exemplo, -Name S3 fornece caminhos comoS3:/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:/
Exemplo de saída:
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
Se você já definiu os padrões de sessão com Set-AWSCredential eSet-DefaultAWSRegion, poderá montar sem outros parâmetros:
Set-AWSCredential -ProfileName my-profile Set-DefaultAWSRegion us-west-2 Mount-S3PSDrive -Name S3
Mount-S3PSDriveé um invólucro fino sobre o PowerShell embutidoNew-PSDrive. Se preferir, você pode criar o drive diretamente e passar os mesmos parâmetros de credencial e região:
New-PSDrive -Name S3 -PSProvider AWS.S3 -Root '' -Scope Global -ProfileName my-profile -Region us-east-1
Usando New-PSDrive diretamente
Passe -Scope Global quando você usa New-PSDrive diretamente. Sem ela, a unidade é criada no escopo atual e desaparece quando esse escopo sai (por exemplo, quando o script ou a função que a criou retorna). Mount-S3PSDriveconjuntos -Scope Global para você.
Por padrão, não Mount-S3PSDrive produz nenhuma saída. Adicione -PassThru se quiser o PSDriveInfo objeto de volta.
Nome do parâmetro de credencial
O parâmetro de credencial é nomeado-AWSCredential, não-Credential. New-PSDrivejá define -Credential como aPSCredential, que é um tipo diferente, então o drive S3 usa um nome distinto para evitar uma colisão.
Como as credenciais e a região são resolvidas
Um drive S3 autentica e seleciona uma região exatamente como os cmdlets do S3: primeiro os parâmetros explícitos, depois os padrões da sessão definidos por Set-AWSCredential e, em seguida, o perfilSet-DefaultAWSRegion, o ambiente e as fontes de metadados da instância das cadeias padrão do SDK. Para ver a ordem de resolução completa, consulte Usando AWS credenciais Especifique a AWS região para o Ferramentas da AWS para PowerShell e.
Se nada abastecer uma região, a unidade volta paraus-east-1. A região com a qual você monta é apenas a região inicial: uma única unidade pode alcançar grupos em todas as regiões (consulteAcesse buckets em todas as regiões a partir de um único drive).
Um perfil incorreto ou um bucket ou prefixo ausente falha emMount-S3PSDrive. Alguns erros de permissão podem não aparecer até você acessar um objeto.
Navegue pelo Amazon S3 como uma unidade local
Depois de montar a unidade, navegue com os comandos comuns da PowerShell unidade. O S3 não tem pastas reais, mas o provedor apresenta prefixos como pastas para que você possa navegar por elas da mesma maneira.
# Change into a bucket, then a prefix Set-Location S3:/amzn-s3-demo-reports/2026 # List the current location Get-ChildItem
Exemplo de saída:
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
O preenchimento de tabulação funciona para compartimentos, prefixos e objetos, então você pode completar um caminho sem inserir nomes completos.
Get-ChildItemretorna cada item como um objeto que expõeName, TypeSize, e LastModified propriedades. Essas propriedades permitem que as listagens sejam direcionadas diretamente para comandos como Where-Object e. Sort-Object Typeé um dosBucket,Folder, ouObject. Pastas e baldes não têm tamanho.
# 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
Outros comandos de navegação também funcionam na unidade:
# 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)
Os aliases de comando diferem de acordo com o sistema operacional
Isso é PowerShell comportamento, não a unidade. No Windows, os Unix-style aliases ls e o cat mapeamento para os PowerShell cmdlets funcionam bem. rm ls S3:/amzn-s3-demo-bucket No Linux e no macOS, PowerShell deixa esses nomes vinculados às ferramentas nativas (/bin/ls,,/bin/cat)/bin/rm, que não reconhecem um caminho do S3. Como resultado, ls S3:/amzn-s3-demo-bucket executa o sistema ls e falha. Para scripts executados em todas as plataformas, use os nomes completos dos cmdlets: Get-ChildItemRemove-Item, e. Get-Content (cde dir têm aliases em todas as plataformas, então funcionam em qualquer lugar.)
Com-Recurse, a chave de um item Name é em relação ao prefixo (portanto, ele pode conter/), e o mesmo nome de folha pode aparecer em prefixos diferentes. Quando você precisar identificar um item listado de forma inequívoca (por exemplo, para encaminhá-lo adiante), use its PSPath em vez de. Name
Encanando objetos listados com - AsByteStream no Windows 5.1 PowerShell
A Get-ChildItem canalização Get-Content -AsByteStream pode falhar no Windows PowerShell 5.1. O motor pode se conectar -AsByteStream antes de saber que a entrada canalizada é um caminho S3, e o FileSystem provedor em 5.1 não tem esse parâmetro (consulte). A leitura de bytes do arquivo local difere de acordo com a edição PSPathEm vez disso, leia cada item de forma explícita, o que funciona nas duas edições:
# Read each listed object by explicit PSPath Get-ChildItem S3:/amzn-s3-demo-bucket/prefix | ForEach-Object { Get-Content -LiteralPath $_.PSPath -AsByteStream -Raw }
Em PowerShell 7+, o canal direto funciona, mas o formulário por item é um padrão seguro para scripts executados nas duas edições.
Os anúncios podem ser interrompidos com segurança
As listagens são transmitidas à medida que cada página de resultados chega do S3 e podem ser interrompidas com Ctrl+C. Um prefixo com um grande número de objetos começa a produzir a saída imediatamente, em vez de esperar que a listagem completa termine.
Caracteres curinga em chaves
As chaves do S3 podem conter legalmente caracteres PowerShell curinga ([,, ]*,?). Para abordar essa chave literalmente, use -LiteralPath (suportado porGet-Item, Get-ContentSet-Content, eRemove-Item), da mesma forma que você faz no provedor do sistema de arquivos:
Get-Content -LiteralPath 'S3:/amzn-s3-demo-bucket/data[2026].csv' -Raw
Test-Path e objetos que você não consegue ler
Test-Pathretorna $true para um caminho que você não consegue ler. Ele confirma que o caminho está resolvido; não confirma que você tem permissão para lê-lo ou escrevê-lo.
Leia objetos do S3
Get-Contentbaixa um objeto. Por padrão, ele retorna o texto linha por linha. Adicione -Raw para retornar o objeto inteiro como uma única string. Ambos Get-Content e Set-Content suporte -Encoding para texto e -AsByteStream conteúdo binário.
# 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
Para objetos não textuais, use -AsByteStream para obter os bytes brutos. Em um caminho do S3, isso funciona tanto no PowerShell 7+ quanto no Windows PowerShell 5.1 porque o provedor do S3 fornece o parâmetro. Somente os arquivos locais diferem por edição (consulteA leitura de bytes do arquivo local difere de acordo com a edição). Para controlar a decodificação de texto, adicione -Encoding com qualquer um dos nomes de PowerShell codificação padrão (UTF8,, UTF8BOM UnicodeASCII, e assim por diante). O padrão é UTF-8 sem um BOM, em ambos Get-Content Set-Content e.
# 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-Contenttambém aceita -PartSize definir o tamanho da parte de download de várias partes, em bytes, entre o mínimo de 5 MiB e o máximo de 5 GiB do S3. Ele é espelhado -PartSizeSet-Content, o que define o tamanho da peça de upload (consulteCarregue objetos muito grandes).
Lendo bytes brutos em uma variável
Se você carregar os bytes de um objeto em uma variável (para fazer hash, medir ou passá-los para outra API), nivele o -AsByteStream resultado primeiro. Caso contrário, .Length as comparações de bytes produzem resultados incorretos:
$bytes = [byte[]]((Get-Content S3:/amzn-s3-demo-bucket/images/logo.png -AsByteStream -Raw) | ForEach-Object { $_ })
A canalização para um arquivo ou outro comando (por exemploSet-Content -AsByteStream, como emCopiar objetos entre o S3 e o disco local) não precisa ser achatada.
Escrever objetos no S3
Set-Contentcarrega (e sobrescreve) um objeto.
# 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
Os uploads têm as seguintes opções:
| Parâmetro | Finalidade |
|---|---|
|
Codificação de texto para os bytes on-the-wire (padrão UTF-8, sem BOM). |
|
Omita a nova linha à direita após cada valor de texto. |
|
Classe de armazenamento para esse objeto (por exemplo |
|
Tamanho de peça de várias partes para esse upload, em bytes (entre o mínimo de 5 MiB e o máximo de 5 GiB do S3). Consulte Carregue objetos muito grandes. |
Você pode cancelar um upload a qualquer momento com Ctrl+C. Nada é confirmado até que o upload seja concluído, portanto, o cancelamento não deixa um objeto parcialmente escrito no lugar do antigo.
Os uploads de texto usam terminações de linha LF
Os uploads de texto usam terminações de linha LF, portanto, um objeto escrito no Windows, Linux ou macOS é idêntico em bytes. Quando você precisar de controle exato sobre os bytes, use-AsByteStream.
Carregue objetos muito grandes
Cada upload por meio da unidade é um upload de várias partes, e o S3 limita um upload de várias partes a 10.000 partes. Com o tamanho de peça padrão de 5 MiB que limita um único objeto a cerca de 48 GiB e um upload após o limite, o limite fica sem peças e falha. Para fazer upload de algo maior, aumente -PartSize para que seja pelo menosobject 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
-PartSizee -StorageClass são parâmetros de destino do S3. Use-os com um caminho de destino S3 explícito (como no exemplo anterior), não com um objeto de destino vinculado ao pipeline.
-PartSizeaceita um valor entre o mínimo de 5 MiB do S3 e o máximo de 5 GiB. No máximo de 5 GiB, 10.000 peças cobrem o maior objeto suportado pelo S3 (5 TiB).
Escolhendo um tamanho de peça
Um tamanho de peça maior também significa menos viagens de ida e volta para um grande upload, mas cada peça em voo é mantida na memória, portanto, peças muito grandes usam mais memória. 5 MiB a algumas centenas de MiB é um intervalo razoável. Só aumente quando o tamanho do objeto exigir.
Copiar objetos entre o S3 e o disco local
A cópia no S3 com não Copy-Item é suportada (consulteOperações suportadas e não suportadas). Para mover dados entre seu disco local e o S3, canalize o conteúdo por Get-Content e. Set-Content
Para dados binários, leia e grave os bytes com exatidão. Um caminho do S3 é usado -AsByteStream em ambas PowerShell as edições; somente o lado local é diferente, conforme descrito em. A leitura de bytes do arquivo local difere de acordo com a edição
# 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
Use o modo byte em ambas as extremidades para dados binários
Leia e grave bytes nas duas extremidades ao copiar dados binários. No modo de texto, o conteúdo é decodificado e recodificado. Uma nova linha é normalizada ou anexada para cada linha, o que corrompe dados não textuais. Byte-mode na leitura e na gravação copia exatamente os bytes. Para arquivos de texto, o plain Get-Content | Set-Content funciona, com uma exceção: o modo texto Set-Content acrescenta uma nova linha à direita (LF) e normaliza os finais de linha, para que a cópia não seja idêntica, byte a byte, à fonte. Quando precisar de uma cópia exata, use -AsByteStream nas duas pontas.
A leitura de bytes do arquivo local difere de acordo com a edição
A segmentação de um arquivo local usa PowerShell o FileSystem provedor embutido, e esse provedor não tem -AsByteStream no Windows PowerShell 5.1 (chegou em PowerShell 6). Em vez disso-Encoding Byte, use lá. Essa é uma limitação 5.1, não algo que o drive S3 controla; um caminho S3 -AsByteStream assume as duas edições.
| Edição | Leia bytes de arquivos locais | Escrever bytes de arquivo local |
|---|---|---|
PowerShell 7+ |
|
|
Windows PowerShell 5.1 |
|
|
Para S3-to-S3 cópias do lado do servidor, use o cmdlet. Copy-S3Object
Excluir objetos e prefixos
Remove-Itemexclui um único objeto. É necessário excluir um prefixo (uma pasta com conteúdo)-Recurse, o que remove tudo abaixo dele em lotes.
# 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
Se Remove-Item as solicitações dependem do que você almeja:
-
Um único objeto, sem
-Recurse: sem aviso. O objeto é excluído. -
Um prefixo, com
-Recurse: sem aviso. Tudo sob o prefixo é excluído. -
Um prefixo não vazio, sem
-Recurse: PowerShell solicita confirmação. Esse é o comportamento do contêiner como filho do provedor do sistema de arquivos. Se você confirmar, a exclusão será repetida; se você recusar, nada será excluído. Em um host não interativo, esse prompt é bloqueado. Passe-Recursepara continuar sem avisar.
Use as PowerShell opções nativas para visualizar ou bloquear uma exclusão:
# 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 os buckets mantêm versões não atuais
Em um bucket com o controle de versão do Amazon S3 ativado, Remove-Item executa uma exclusão padrão. Ele adiciona um marcador de exclusão e oculta a versão atual, mas não remove as versões não atuais, que são mantidas e continuam gerando custos de armazenamento. Para remover versões permanentemente, use os cmdlets do S3 (por exemplo, Remove-S3Object com um ID de versão) ou uma regra de ciclo de vida do Amazon S3.
Remove-Item -Recurse exclui sem solicitar
Remove-Item -Recurseexclui todos os objetos sob o prefixo sem aviso, da mesma forma que. rm -r Em um bucket sem controle de versão, a exclusão recursiva é permanente. Em um bucket com controle de versão, ele adiciona marcadores de exclusão conforme descrito na nota anterior. Use -WhatIf primeiro se não tiver certeza do que ele removerá.
Você não pode excluir um bucket inteiro pela unidade porque as operações do ciclo de vida do bucket estão fora do escopo. Use Remove-S3Bucket em vez disso.
Defina o escopo de uma unidade para um bucket ou prefixo
Monte com -Root para confinar uma unidade a um balde ou a um prefixo dentro de um balde. A raiz da unidade, então, é esse local, e a navegação fica confinada abaixo dela.
# 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/
A raiz já deve existir. Um bucket ou prefixo inexistente falha na montagem. Como os caminhos relativos não podem subir acima da raiz (..são bloqueados pelo motor), uma montagem com escopo oferece uma visão focada dos dados de exatamente um projeto.
Acesse buckets em todas as regiões a partir de um único drive
Uma única unidade montada pode alcançar baldes em todas as regiões. Na primeira vez que você toca em um bucket, o provedor consulta sua região e encaminha as chamadas subsequentes para o endpoint correto automaticamente. Você não precisa de uma unidade separada para cada região.
# 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
Definir uma classe de armazenamento padrão
Defina uma classe de armazenamento padrão para toda a unidade no momento da montagem com. -StorageClass Cada upload por meio desse drive usa a classe especificada, a menos que um específico a Set-Content substitua pela sua própria. -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
Desmontar uma unidade
Use Dismount-S3PSDrive (uma embalagem sobreRemove-PSDrive) para remover uma unidade. Mude para outro local primeiro, porque PowerShell não removerá uma unidade que seja sua localização atual.
Set-Location $HOME # or C:\ on Windows Dismount-S3PSDrive -Name S3
Operações suportadas e não suportadas
Use a unidade para navegar e mover o conteúdo do objeto. O ciclo de vida do bucket e as operações de cópia do lado do servidor permanecem com os cmdlets dedicados do S3.
Compatível
-
Navegação e listagem:
Set-Location,Get-ChildItem(incluindo-Recurse),,Get-ItemTest-Path, preenchimento de guias -
Conteúdo:
Get-Content(download),Set-Content(upload) -
Exclusão:
Remove-Item(objeto único; prefixos com)-Recurse -
Canalizando os itens listados para dentro e
Get-ContentRemove-Item
Sem compatibilidade
| Command | Por que/ o que usar em vez disso |
|---|---|
|
S3-to-S3 a cópia não é exposta pela unidade. Use Copy-S3Object para cópias do lado do servidor. Para transferências locais para S3 ou S3-to-local transferências, canalize. |
|
O S3 não tem renomeação. Execute uma cópia e exclusão com os cmdlets. |
|
O S3 não tem pastas reais. Um prefixo aparece quando você escreve um objeto abaixo dele. |
|
Os objetos são escritos inteiros |
|
A unidade não implementa a interface de PowerShell propriedades, então esses comandos falham com o erro de interface não suportada do próprio PowerShell mecanismo, em vez da mensagem da unidade. Os itens |
Criação ou exclusão de buckets |
Os comandos não suportados falham com uma mensagem que nomeia o comando e aponta para a alternativa - por exemplo, "não Copy-Item é suportado pela unidade S3. Use Copy-S3Object ou canalize Get-Content para Set-Content.” Os *-ItemProperty comandos são a exceção, conforme descrito na tabela anterior.
Referência de comando
Para ver a lista completa de parâmetros de Mount-S3PSDrive e Dismount-S3PSDrive, consulte a Referência de Ferramentas da AWS para PowerShell cmdlets.
Em um caminho do S3, a unidade também adiciona parâmetros Get-Content dinâmicos aos Set-Content quais a PowerShell documentação desses cmdlets não abrange:
| Command | Parâmetros |
|---|---|
|
|
|
|
Solução de problemas
“Não é possível desmontar a unidade porque ela está em uso.”
A unidade S3 é a localização atual. Mude para um local em outra unidade, como$HOME, e execute Dismount-S3PSDrive novamente.
A montagem falha com “a raiz não foi encontrada ou não está acessível”.
O bucket ou prefixo in -Root não existe. Verifique o nome (e a região, se o bucket estiver em um que suas credenciais não usem como padrão). Uma falha na credencial produz um erro diferente, não essa mensagem de “não acessível”. Um erro de permissão na raiz pode não aparecer até que você acesse um objeto, portanto, uma montagem bem-sucedida não garante que você possa ler todos os caminhos abaixo dele.
A exclusão de um prefixo não vazio trava em um script.
Isso acontece quando você exclui um prefixo não vazio sem. -Recurse O PowerShell mecanismo gera uma solicitação de confirmação porque o prefixo tem filhos (o comportamento do contêiner tem filhos do provedor do sistema de arquivos). Um host não interativo não pode responder ao prompt, então o comando é bloqueado.
Passe -Recurse para excluir o conteúdo do prefixo sem solicitar, ou confirme interativamente para continuar. (não -Force é consultado pelo caminho de exclusão da unidade, portanto, não tem efeito aqui.)
“Um objeto que acabei de trocar fora da unidade ainda mostra o anúncio antigo.”
Os anúncios são armazenados em cache brevemente (cerca de um segundo) para manter a navegação rápida. As alterações feitas por meio da unidade aparecem imediatamente. As alterações feitas por outra ferramenta aparecem depois que o cache curto expira.
“Uma chave contém uma barra invertida.”
Se a unidade pode endereçar uma chave que contém uma barra invertida depende do sistema operacional, pois a unidade aceita o separador de caminho nativo da plataforma:
-
Windows -
\é um separador de caminhos, então a unidade o lê como um e o normaliza para./Uma chave que contém uma barra invertida literal não pode ser endereçada por meio da unidade. Em vez disso, use os cmdlets do S3, por exemplo ou. Get-S3Object Read-S3Object -
Linux e macOS - só
/é um separador de caminhos. Uma barra invertida é um caractere comum em uma chave, então a unidade endereça essas chaves normalmente.