

¡Se Herramientas de AWS para PowerShell ha lanzado la versión 5 (V5) del\!

Para obtener información sobre los cambios más importantes y la migración de sus aplicaciones, consulte el tema [ sobre migración. ](https://docs.aws.amazon.com/powershell/v5/userguide/migrating-v5.html)

 [![Orange button with text "Click here for details".](https://docs.aws.amazon.com/es_es/powershell/v5/userguide/images/BannerButton_less-round.png)](https://docs.aws.amazon.com/powershell/v5/userguide/migrating-v5.html)

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Utilice Amazon S3 como PowerShell unidad
<a name="pstools-s3-drive"></a>

*Se aplica a: `AWS.Tools.S3` 5.0.288 y versiones posteriores. El proveedor de la unidad S3 y sus cmdlets se incluyen en el `AWS.Tools.S3` módulo, que se ejecuta en Windows PowerShell 5.1 y PowerShell 7\+ (Windows, Linux, macOS). *

La PowerShell unidad S3 le permite montar el almacenamiento de Amazon S3 como una unidad y trabajar con ella del mismo modo que trabaja con un disco local. Tras montar una unidad, el proveedor presenta los cubos y prefijos como carpetas y los objetos como archivos. Los comandos de navegación más comunes funcionan directamente contra S3, como`Set-Location`, `Get-ChildItem` `Get-Content``Set-Content`, y. `Remove-Item`

Este tema trata sobre la instalación, el montaje, la navegación, la transferencia de contenido y el desmontaje, además de las credenciales, la región y el comportamiento de seguridad de la unidad S3.

**Los separadores de rutas varían según la plataforma**  
Los ejemplos de este tema utilizan `/` el separador de rutas, que la unidad acepta en todas las plataformas. En Windows, la unidad también acepta`\`, por lo que `S3:\amzn-s3-demo-bucket\reports` `S3:/amzn-s3-demo-bucket/reports` son equivalentes allí. En Linux y macOS solo `/` hay un separador, así que usa ese formulario en los scripts que se ejecuten en más de una plataforma. Las rutas que devuelve la unidad, por ejemplo`PSPath`, utilizan el separador nativo del sistema operativo: `\` en Windows y `/` en Linux y macOS.

## Requisitos previos
<a name="pstools-s3-drive-prerequisites"></a>
+ El `AWS.Tools.S3` módulo, 5.0.288 o posterior. Instálalo directamente desde la PowerShell Galería (esto también incluye su `AWS.Tools.Common` dependencia):

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

  O bien, si administras las herramientas modulares con el `AWS.Tools.Installer` módulo, instálalo primero y luego usa`Install-AWSToolsModule`:

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

  El proveedor de la unidad y sus cmdlets se incluyen en el paquete. `AWS.Tools.S3` No se requiere ninguna instalación adicional.
+ AWS credenciales configuradas de la misma manera que para cualquier cmdlet de S3 (un perfil con nombre, variables de entorno, un rol de IAM o SSO). Para obtener más información, consulte [Comience con el Herramientas de AWS para PowerShell](pstools-getting-set-up.md).

Al importar el módulo, se registra un proveedor llamado. PowerShell `AWS.S3` Puede confirmar que está disponible:

```
Get-PSProvider AWS.S3
```

## Monta una unidad
<a name="pstools-s3-drive-mount"></a>

Se usa `Mount-S3PSDrive` para crear una unidad. El `-Name` parámetro se convierte en el nombre de la unidad en cada ruta (por `-Name S3` ejemplo, muestra rutas como`S3:/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:/
```

Código de salida de ejemplo:

```
   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
```

Si ya ha establecido los valores predeterminados de sesión con `Set-AWSCredential` y`Set-DefaultAWSRegion`, puede montarla sin ningún otro parámetro:

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

`Mount-S3PSDrive`es un envoltorio delgado sobre el incorporado. PowerShell `New-PSDrive` Si lo prefiere, puede crear la unidad directamente y pasar los mismos parámetros de credenciales y regiones:

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

**Utilizándolo directamente New-PSDrive**  
Pase `-Scope Global` cuando lo use `New-PSDrive` directamente. Sin ella, la unidad se crea en el ámbito actual y desaparece cuando ese ámbito se cierra (por ejemplo, cuando vuelve el script o la función que la creó). `Mount-S3PSDrive`sets `-Scope Global` para ti.

De forma predeterminada, no `Mount-S3PSDrive` produce ninguna salida. `-PassThru`Añádalo si quiere recuperar el `PSDriveInfo` objeto.

**Nombre del parámetro de credencial**  
El parámetro de credencial tiene un nombre`-AWSCredential`, no. `-Credential` `New-PSDrive`ya se define `-Credential` como`PSCredential`, que es de un tipo diferente, por lo que la unidad S3 usa un nombre distinto para evitar una colisión.

## Cómo se resuelven las credenciales y la región
<a name="pstools-s3-drive-credentials"></a>

Una unidad S3 autentica y selecciona una región exactamente como lo hacen los cmdlets de S3: primero los parámetros explícitos, luego los valores predeterminados de sesión establecidos por `Set-AWSCredential` y`Set-DefaultAWSRegion`, a continuación, las fuentes de metadatos de perfil, entorno e instancia de las cadenas predeterminadas del SDK. Para ver el orden de resolución completo, consulte y. [Uso de AWS credenciales](specifying-your-aws-credentials.md) [Especifique la AWS región para el Herramientas de AWS para PowerShell](pstools-installing-specifying-region.md)

Si nada abastece a una región, la unidad recurre a`us-east-1`. La región con la que montas es solo la * región * inicial: una sola unidad puede llegar a grupos de distintas regiones (consulta[Accede a sitios de distintas regiones desde un solo viaje](#pstools-s3-drive-regions)).

Si un perfil es incorrecto o si falta un bucket o un prefijo, se produce un error en. `Mount-S3PSDrive` Es posible que algunos errores de permisos no aparezcan hasta que accedas a un objeto.

## Navegue por Amazon S3 como si fuera una unidad local
<a name="pstools-s3-drive-browse"></a>

Tras montar la unidad, navegue con los comandos habituales de la PowerShell unidad. S3 no tiene carpetas reales, pero el proveedor presenta los prefijos en forma de carpetas para que puedas navegar por ellas de la misma manera.

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

Código de salida de ejemplo:

```
   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
```

La función de completar pestañas funciona con grupos, prefijos y objetos, por lo que puede completar una ruta sin tener que introducir los nombres completos.

`Get-ChildItem`devuelve cada elemento como un objeto que expone `Name` `Type``Size`, y propiedades. `LastModified` Estas propiedades permiten que los listados se canalicen directamente a comandos como `Where-Object` y`Sort-Object`. `Type`es uno de`Bucket`,`Folder`, o`Object`. Las carpetas y los cubos no tienen ningún tamaño.

```
# 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
```

Otros comandos de navegación también funcionan en la unidad:

```
# 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)
```

**Los alias de los comandos varían según el sistema operativo**  
Este es PowerShell el comportamiento, no el disco. En Windows, los Unix-style alias y el `cat` mapa se `ls` `rm` asignan a los PowerShell cmdlets, por lo que funciona. `ls S3:/amzn-s3-demo-bucket` En Linux y macOS, PowerShell deja esos nombres enlazados a las herramientas nativas (`/bin/ls`,,`/bin/cat`)`/bin/rm`, que no reconocen una ruta de S3. Como resultado, `ls S3:/amzn-s3-demo-bucket` ejecuta el sistema `ls` y falla. Para los scripts que se ejecutan en todas las plataformas, utilice los nombres completos de los cmdlets: `Get-ChildItem``Remove-Item`, y. `Get-Content` (`cd`y `dir` tienen alias en todas las plataformas, por lo que funcionan en todas partes).

Con`-Recurse`, la clave de un elemento `Name` es su clave * relativa al prefijo * (por lo que puede contener`/`), y el mismo nombre de hoja puede aparecer bajo diferentes prefijos. Cuando necesites identificar un elemento de la lista de forma inequívoca (por ejemplo, para canalizarlo), usa su en lugar de. `PSPath` `Name`

**Canalizar los objetos de la lista con - en Windows 5.1 AsByteStream PowerShell**  
La interconexión `Get-ChildItem` `Get-Content -AsByteStream` puede fallar en Windows PowerShell 5.1. Es posible que el motor se bloquee `-AsByteStream` antes de darse cuenta de que la entrada canalizada es una ruta S3 y el FileSystem proveedor de la versión 5.1 no tiene ese parámetro (consulte[La lectura de los bytes de un archivo local varía según la edición](#pstools-s3-drive-local-bytes)). En su `PSPath` lugar, lee cada elemento según su significado explícito, lo que funciona en ambas ediciones:  

```
# Read each listed object by explicit PSPath
Get-ChildItem S3:/amzn-s3-demo-bucket/prefix | ForEach-Object {
    Get-Content -LiteralPath $_.PSPath -AsByteStream -Raw
}
```
En versiones de PowerShell 7 o más, la canalización directa funciona, pero el formulario por elemento es un valor predeterminado seguro para los scripts que se ejecutan en ambas ediciones.

**Es seguro interrumpir los anuncios**  
Los listados se muestran a medida que llega cada página de resultados desde S3 y se pueden interrumpir con la tecla Ctrl\+C. Los prefijos con un gran número de objetos comienzan a generar resultados inmediatamente, en lugar de esperar a que termine el listado completo.

**Caracteres comodín en las claves**  
Las claves S3 pueden contener legalmente caracteres PowerShell comodín (`[`,, `]``*`,`?`). Para abordar dicha clave de forma literal, utilice `-LiteralPath` (compatible con`Get-Item`,`Get-Content`, y`Remove-Item`)`Set-Content`, del mismo modo que lo hace en el proveedor del sistema de archivos:  

```
Get-Content -LiteralPath 'S3:/amzn-s3-demo-bucket/data[2026].csv' -Raw
```

**Test-Path y objetos que no puede leer**  
`Test-Path`devuelve `$true` una ruta que no puedes leer. Confirma que la ruta se ha resuelto; no confirma que tenga permiso para leerla o escribirla.

## Lee objetos de S3
<a name="pstools-s3-drive-read"></a>

`Get-Content`descarga un objeto. De forma predeterminada, devuelve el texto línea por línea. Agregue `-Raw` para devolver todo el objeto como una sola cadena. `Get-Content`Tanto como `Set-Content` soporte `-Encoding` para texto como `-AsByteStream` para contenido binario.

```
# 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
```

En el caso de objetos que no sean de texto, `-AsByteStream` utilícelo para obtener los bytes sin procesar. En una ruta S3, esto funciona tanto en Windows PowerShell 7 o más como en Windows PowerShell 5.1 porque el proveedor de S3 proporciona el parámetro. Solo * los archivos * locales varían según la edición (consulte[La lectura de los bytes de un archivo local varía según la edición](#pstools-s3-drive-local-bytes)). Para controlar la decodificación del texto, añádalo `-Encoding` con cualquiera de los nombres de PowerShell codificación estándar (`UTF8``UTF8BOM``Unicode``ASCII`,,,, etc.). El valor predeterminado es UTF-8 sin una lista de materiales, tanto en `Get-Content` Y. `Set-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-Content`también acepta `-PartSize` establecer el tamaño de la parte de * descarga * multiparte, en bytes, entre el mínimo de 5 MiB de S3 y el máximo de 5 GiB. Se duplica `-PartSize``Set-Content`, lo que establece el tamaño de la parte de carga (consulte). [Sube objetos muy grandes](#pstools-s3-drive-large-objects)

**Lectura de bytes sin procesar en una variable**  
Si cargas los bytes de un objeto en una variable (para calcularlos, medirlos o pasarlos a otra API), primero aplana el `-AsByteStream` resultado. De lo contrario`.Length`, las comparaciones de bytes producirán resultados incorrectos:  

```
$bytes = [byte[]]((Get-Content S3:/amzn-s3-demo-bucket/images/logo.png -AsByteStream -Raw) | ForEach-Object { $_ })
```
La canalización a un archivo u otro comando (por ejemplo`Set-Content -AsByteStream`, como en[Copie objetos entre S3 y el disco local](#pstools-s3-drive-copy)) no necesita aplanarse.

## Escribe objetos en S3
<a name="pstools-s3-drive-write"></a>

`Set-Content`carga (y sobrescribe) un 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
```

Las subidas tienen las siguientes opciones:


| Parámetro | Finalidad | 
| --- | --- | 
| `-Encoding` | Codificación de texto para los bytes conectados (opción predeterminada UTF-8, sin lista de materiales). | 
| `-NoNewline` | Omita la nueva línea final después de cada valor de texto. | 
| `-StorageClass` | Clase de almacenamiento para este objeto (por ejemplo,`STANDARD_IA`). `GLACIER` | 
| `-PartSize` | Tamaño de la parte multiparte para esta carga, en bytes (entre el mínimo de 5 MiB de S3 y el máximo de 5 GiB). Consulte [Sube objetos muy grandes](#pstools-s3-drive-large-objects). | 

Puedes cancelar una subida en cualquier momento con Ctrl\+C. No se confirma nada hasta que finalice la subida, por lo que la cancelación no deja un objeto a medio escribir en lugar del anterior.

**Las subidas de texto utilizan terminaciones de línea LF**  
Las subidas de texto utilizan finales de línea LF, por lo que un objeto escrito en Windows, Linux o macOS es idéntico en bytes. Cuando necesites un control exacto sobre los bytes, usa. `-AsByteStream`

### Sube objetos muy grandes
<a name="pstools-s3-drive-large-objects"></a>

Todas las subidas a través de la unidad se cargan en varias partes, y S3 limita las subidas en varias partes a 10 000 partes. Con un tamaño de pieza predeterminado de 5 MiB, un único objeto queda limitado a unos 48 GiB, y si se sube más de ese límite, se quedan sin partes y se produce un error. Para subir algo más grande, sube el volumen de `-PartSize` forma que tenga al menos: `object 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
```

`-PartSize`y `-StorageClass` son parámetros de destino de S3. Utilícelos con una ruta de destino de S3 explícita (como en el ejemplo anterior), no con un objeto de destino vinculado a una canalización.

`-PartSize`acepta un valor entre el mínimo de 5 MiB de S3 y el máximo de 5 GiB. Con un máximo de 5 GiB, 10 000 partes cubren el objeto más grande que admite S3 (5 TiB).

**Elegir el tamaño de una pieza**  
Un tamaño de pieza mayor también implica menos viajes de ida y vuelta para una carga grande, pero cada pieza a bordo se almacena en la memoria, por lo que las piezas muy grandes consumen más memoria. De 5 MiB a unos pocos cientos de MiB es un rango razonable. Solo suba cuando el tamaño del objeto lo requiera.

## Copie objetos entre S3 y el disco local
<a name="pstools-s3-drive-copy"></a>

No `Copy-Item` se admite la copia * dentro de * S3 con (consulte[Operaciones compatibles y no compatibles](#pstools-s3-drive-supported)). Para mover datos entre el disco local y S3, canalice el contenido a través `Get-Content` de `Set-Content` Y.

En el caso de los datos binarios, lea y escriba los bytes con exactitud. Se utiliza una ** ruta ** S3 `-AsByteStream` en ambas PowerShell ediciones; solo difiere el * lado * local, como se describe en[La lectura de los bytes de un archivo local varía según la edición](#pstools-s3-drive-local-bytes).

```
# 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
```

**Utilice el modo de bytes en ambos extremos para los datos binarios**  
Lea y escriba bytes en ** ambos ** extremos al copiar datos binarios. En el modo texto, el contenido se decodifica y se vuelve a codificar. Se normaliza o se añade una nueva línea para cada línea, lo que corrompe los datos que no son de texto. Byte-mode al leer y escribir copia los bytes exactamente. En el caso de los archivos de texto`Get-Content | Set-Content`, es sencillo, con una excepción: el modo texto `Set-Content` añade una nueva línea (LF) al final y normaliza los finales de línea, de modo que la copia no es idéntica byte por byte a la fuente. Cuando necesite una copia exacta, utilícela en ambos extremos. `-AsByteStream`

### La lectura de los bytes de un archivo local varía según la edición
<a name="pstools-s3-drive-local-bytes"></a>

La segmentación PowerShell de un archivo local utiliza el FileSystem proveedor integrado, que no tiene `-AsByteStream` en Windows PowerShell 5.1 (llegó en PowerShell 6). Úsalo `-Encoding Byte` allí en su lugar. Se trata de una limitación de la versión 5.1, no algo que controle la unidad S3; `-AsByteStream` en ambas ediciones se utiliza una ruta S3.


| Edition | Lee los bytes de archivos locales | Escribe bytes de archivos locales | 
| --- | --- | --- | 
| **PowerShell Más de 7 ** | `Get-Content $f -AsByteStream -ReadCount 8MB` | `Set-Content $f -AsByteStream` | 
| **Windows 5.1 PowerShell ** | `Get-Content $f -Encoding Byte -ReadCount 8MB` | `Set-Content $f -Encoding Byte` | 

Para las S3-to-S3 copias del lado del servidor, utilice el [ Copy-S3Object ](https://docs.aws.amazon.com/powershell/v5/reference/items/Copy-S3Object.html) cmdlet.

## Elimine objetos y prefijos
<a name="pstools-s3-drive-delete"></a>

`Remove-Item`elimina un único objeto. Eliminar un prefijo (una carpeta con contenido) requiere`-Recurse`, lo que elimina por lotes todo lo que esté debajo del prefijo.

```
# 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
```

El hecho de `Remove-Item` que las solicitudes dependan del objetivo al que se dirija:
+ Un solo objeto, sin`-Recurse`: ninguna solicitud. Se elimina el objeto.
+ Un prefijo con`-Recurse`: sin aviso. Se borra todo lo que esté debajo del prefijo.
+ Un prefijo que no esté vacío, sin`-Recurse`: PowerShell solicita confirmación. Este es el comportamiento del proveedor del sistema de archivos cuando dice que el contenedor tiene hijos. Si confirmas, la eliminación se repite; si la rechazas, no se borra nada. En un host no interactivo, ese mensaje se bloquea. Pase `-Recurse` para continuar sin preguntar.

Usa los PowerShell conmutadores nativos para previsualizar o borrar una imagen:

```
# 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 los cubos mantienen las versiones no actuales**  
En un bucket con el control de versiones de Amazon S3 activado, `Remove-Item` realiza una eliminación estándar. Añade un marcador de eliminación y oculta la versión actual, pero no elimina las versiones no actuales, que se conservan y siguen generando costes de almacenamiento. Para eliminar versiones de forma permanente, utilice los cmdlets de S3 (por ejemplo, [ Remove-S3Object ](https://docs.aws.amazon.com/powershell/v5/reference/items/Remove-S3Object.html) con un identificador de versión) o una regla de ciclo de vida de Amazon S3.

**Remove-Item -Elimina de forma recurrente sin preguntar**  
`Remove-Item -Recurse`elimina todos los objetos del prefijo sin preguntar, igual que. `rm -r` En un bucket sin control de versiones, la eliminación recursiva es permanente. En un bucket con control de versiones habilitado, agrega marcadores de eliminación tal y como se describe en la nota anterior. Úselo `-WhatIf` primero si no está seguro de lo que eliminará.

No puedes eliminar un * depósito completo de la * unidad porque las operaciones del ciclo de vida del depósito están fuera de alcance. En su lugar, use [Remove-S3Bucket](https://docs.aws.amazon.com/powershell/v5/reference/items/Remove-S3Bucket.html).

## Limita una unidad a un bucket o prefijo
<a name="pstools-s3-drive-scoped-mount"></a>

Se monta con `-Root` para confinar una unidad a un depósito o con un prefijo dentro de un depósito. Por lo tanto, la raíz de la unidad * es * esa ubicación y la navegación se limita a ella.

```
# 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/
```

La raíz ya debe existir. Un bucket o un prefijo inexistentes no se montan. Como las rutas relativas no pueden superar la raíz (están `..` bloqueadas por el motor), una montura con ámbito específico te permite ver exactamente los datos de un proyecto.

## Accede a sitios de distintas regiones desde un solo viaje
<a name="pstools-s3-drive-regions"></a>

Una sola unidad montada puede llegar a grupos de distintas regiones. La primera vez que tocas un bucket, el proveedor busca su región y dirige automáticamente las llamadas subsiguientes al punto final correcto. No necesitas una unidad diferente para cada región.

```
# 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
```

## Establece una clase de almacenamiento predeterminada
<a name="pstools-s3-drive-storage-class"></a>

Establezca una clase de almacenamiento predeterminada para toda la unidad en el momento del montaje con. `-StorageClass` Todas las subidas a través de esa unidad utilizan la clase especificada, a menos que una clase específica la `Set-Content` sustituya por la suya propia. `-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
```

## Desmonta una unidad
<a name="pstools-s3-drive-unmount"></a>

`Dismount-S3PSDrive`Utilícela (una envoltura`Remove-PSDrive`) para extraer una unidad. Cambia primero a otra ubicación, porque PowerShell no se eliminará una unidad que esté en tu ubicación actual.

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

## Operaciones compatibles y no compatibles
<a name="pstools-s3-drive-supported"></a>

Utilice la unidad para explorar y mover el * contenido * de los objetos. Las operaciones de copia del ciclo de vida del bucket y del lado del servidor se mantienen en manos de los cmdlets S3 dedicados.

### Soportado
<a name="pstools-s3-drive-supported-list"></a>
+ Navegación y listado:`Set-Location`, `Get-ChildItem` (incluyendo`-Recurse`),,, completar pestañas `Get-Item` `Test-Path`
+ Contenido: `Get-Content` (descarga), `Set-Content` (carga)
+ Eliminación: `Remove-Item` (objeto único; prefijos con`-Recurse`)
+ Dirigir los elementos de la lista hacia y `Get-Content` `Remove-Item`

### No admitido
<a name="pstools-s3-drive-not-supported"></a>


| Comando | Por qué/qué usar en su lugar | 
| --- | --- | 
| `Copy-Item` | S3-to-S3 la copia no está expuesta a través de la unidad. Úselo [ Copy-S3Object ](https://docs.aws.amazon.com/powershell/v5/reference/items/Copy-S3Object.html) para copias del lado del servidor. Para transferencias o transferencias locales a S3, canalice. S3-to-local `Get-Content \| Set-Content` | 
| `Move-Item`, `Rename-Item` | S3 no tiene ningún cambio de nombre. Realice una copia y una eliminación con los cmdlets. | 
| `New-Item`(directorio) | S3 no tiene carpetas reales. Aparece un prefijo cuando escribes un objeto debajo de él. | 
| `Clear-Content`, `Add-Content` | Los objetos se escriben enteros por`Set-Content`. No hay ningún anexo ni borrado in situ. | 
| `Get-ItemProperty`, `Set-ItemProperty`, `Clear-ItemProperty` | La unidad no implementa la interfaz de PowerShell propiedades, por lo que estos comandos fallan y se debe al error «interfaz no compatible» del PowerShell motor, en lugar del mensaje de la unidad. Los artículos que se `Get-Item` devuelven solo contienen`Name`,, `Get-ChildItem` `Type` y. `Size` `LastModified` Para leer o configurar los metadatos de los objetos de S3, utilice [ Get-S3ObjectMetadata ](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-S3ObjectMetadata.html) o [ Write-S3Object](https://docs.aws.amazon.com/powershell/v5/reference/items/Write-S3Object.html). | 
| Crear o eliminar cubos | Usa [ New-S3Bucket](https://docs.aws.amazon.com/powershell/v5/reference/items/New-S3Bucket.html)/[Remove-S3Bucket](https://docs.aws.amazon.com/powershell/v5/reference/items/Remove-S3Bucket.html). | 

Los comandos no compatibles fallan y aparecen un mensaje en el que se indica el nombre del comando y se indica la alternativa (por ejemplo, «no Copy-Item es compatible con la unidad S3). Copy-S3ObjectUtilízalo o canaliza Get-Content hacia Set-Content». Los `*-ItemProperty` comandos son la excepción, tal y como se describe en la tabla anterior.

## Referencia de los comandos
<a name="pstools-s3-drive-command-reference"></a>

Para ver la lista completa de parámetros de [ Mount-S3PSDrive ](https://docs.aws.amazon.com/powershell/v5/reference/items/Mount-S3PSDrive.html) y [ Dismount-S3PSDrive](https://docs.aws.amazon.com/powershell/v5/reference/items/Dismount-S3PSDrive.html), consulte la referencia de [Herramientas de AWS para PowerShell cmdlets. ](https://docs.aws.amazon.com/powershell/v5/reference/)

En una ruta S3, la unidad también agrega parámetros dinámicos `Set-Content` que no se `Get-Content` incluyen en la PowerShell documentación de esos cmdlets:


| Comando | Parameters | 
| --- | --- | 
| `Get-Content` | `-AsByteStream`, `-Raw`, `-Encoding`, `-PartSize` | 
| `Set-Content` | `-AsByteStream`,,`-Encoding`, `-NoNewline``-StorageClass`, `-PartSize` (consulte) [Sube objetos muy grandes](#pstools-s3-drive-large-objects) | 

## Resolución de problemas
<a name="pstools-s3-drive-troubleshooting"></a>

### «No se puede desmontar la unidad porque está en uso».
<a name="pstools-s3-drive-ts-dismount"></a>

La unidad S3 es la ubicación actual. Cambie a una ubicación de otra unidad, por ejemplo`$HOME`, y `Dismount-S3PSDrive` vuelva a ejecutarla.

### El montaje falla y dice: «No se encontró la raíz o no se puede acceder a ella».
<a name="pstools-s3-drive-ts-root"></a>

El bucket o el prefijo in `-Root` no existen. Comprueba el nombre (y la región, si el bucket está en uno en el que tus credenciales no estén configuradas de forma predeterminada). Un error en las * credenciales * produce un error diferente, no este mensaje de «no se puede acceder a ella». Es posible que un error de permiso en la raíz no aparezca hasta que accedas a un objeto, por lo que un montaje correcto no garantiza que puedas leer todas las rutas que se encuentran debajo de él.

### La eliminación de un prefijo que no esté vacío se bloquea en un script.
<a name="pstools-s3-drive-ts-delete-hangs"></a>

Esto ocurre cuando se elimina un prefijo * que no esté vacío sin. * `-Recurse` El PowerShell motor lanza un mensaje de confirmación porque el prefijo contiene elementos secundarios (es decir, el comportamiento del proveedor del sistema de archivos según el cual el contenedor tiene elementos secundarios). Un host no interactivo no puede responder a la solicitud, por lo que el comando se bloquea.

Pase `-Recurse` para eliminar el contenido del prefijo sin preguntar, o confirme de forma interactiva para continuar. (no `-Force` aparece en la ruta de eliminación de la unidad, por lo que no tiene ningún efecto en este caso).

### «Un objeto que acabo de cambiar fuera de la unidad sigue mostrando la lista anterior».
<a name="pstools-s3-drive-ts-stale-listing"></a>

Los listados se almacenan en caché brevemente (alrededor de un segundo) para que la navegación sea más rápida. Los cambios realizados * a través * de la unidad aparecen inmediatamente. Los cambios realizados por otra herramienta aparecen cuando caduca la caché corta.

### «Una clave contiene una barra invertida».
<a name="pstools-s3-drive-ts-backslash"></a>

El hecho de que la unidad pueda direccionar una clave que contenga una barra invertida depende del sistema operativo, ya que la unidad acepta el separador de rutas nativo de la plataforma:
+ **Windows**: `\` es un separador de rutas, por lo que la unidad lo lee como tal y lo normaliza. `/` Una clave que contiene una barra invertida literal no se puede direccionar desde la unidad. En su lugar, utilice los cmdlets S3, por ejemplo o. [ Get-S3Object ](https://docs.aws.amazon.com/powershell/v5/reference/items/Get-S3Object.html) [ Read-S3Object ](https://docs.aws.amazon.com/powershell/v5/reference/items/Read-S3Object.html)
+ **Linux y macOS**: solo `/` hay un separador de rutas. La barra invertida es un carácter normal de una tecla, por lo que la unidad direcciona esas teclas normalmente.

**Véase también**
+  [¿Qué son las Herramientas de AWS para PowerShell?](pstools-welcome.md) 
+  [Herramientas de AWS para PowerShell Referencia de cmdlets ](https://docs.aws.amazon.com/powershell/v5/reference/) 
+  [Documentación de Amazon S3](https://docs.aws.amazon.com/s3/) 