

La AWS SDK para Java 1.x se alcanzó end-of-support el 31 de diciembre de 2025. Le recomendamos que migre a [AWS SDK for Java 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/home.html) para seguir recibiendo nuevas características, mejoras de disponibilidad y actualizaciones de seguridad.

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.

# Realizar operaciones en objetos de Amazon S3
<a name="examples-s3-objects"></a>

Un objeto de Amazon S3 representa un *archivo* o conjunto de datos. Cada objeto debe residir en un [bucket](examples-s3-buckets.md).

**nota**  
En estos ejemplos de código se presupone que conoce la información que se describe en [Uso del AWS SDK para Java](basics.md) y que ha configurado credenciales de AWS predeterminadas mediante la información de [Configuración de credenciales y regiones de AWS para desarrollo](setup-credentials.md).

**Topics**
+ [Carga de un objeto](#upload-object)
+ [Lista de objetos](#list-objects)
+ [Descarga de un objeto](#download-object)
+ [Copiar, mover o cambiar de nombre objetos](#copy-object)
+ [Eliminar un objeto](#delete-object)
+ [Eliminación de varios objetos a la vez](#delete-objects)

## Carga de un objeto
<a name="upload-object"></a>

Utilice el método `putObject` del cliente AmazonS3, proporcionando un nombre de bucket, un nombre de clave y el archivo que se va a cargar. *El bucket debe existir o se producirá un error*.

 **Importaciones** 

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
```

 **Código de** 

```
System.out.format("Uploading %s to S3 bucket %s...\n", file_path, bucket_name);
final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.DEFAULT_REGION).build();
try {
    s3.putObject(bucket_name, key_name, new File(file_path));
} catch (AmazonServiceException e) {
    System.err.println(e.getErrorMessage());
    System.exit(1);
}
```

Consulte el [ejemplo completo](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/PutObject.java) en GitHub.

## Lista de objetos
<a name="list-objects"></a>

Para obtener una lista de objetos dentro de un bucket, utilice el método `listObjects` del cliente AmazonS3, proporcionando el nombre de un bucket.

El método `listObjects` devuelve un objeto [ObjectListing](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/s3/model/ObjectListing.html) que proporciona información acerca de los objetos del bucket. Para mostrar los nombres de objeto (claves), utilice el método `getObjectSummaries` para obtener una lista de objetos [S3ObjectSummary](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/s3/model/S3ObjectSummary.html), cada uno de los cuales representa un solo objeto del bucket. A continuación, llame a su método `getKey` para recuperar el nombre del objeto.

 **Importaciones** 

```
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.ListObjectsV2Result;
import com.amazonaws.services.s3.model.S3ObjectSummary;
```

 **Código de** 

```
System.out.format("Objects in S3 bucket %s:\n", bucket_name);
final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.DEFAULT_REGION).build();
ListObjectsV2Result result = s3.listObjectsV2(bucket_name);
List<S3ObjectSummary> objects = result.getObjectSummaries();
for (S3ObjectSummary os : objects) {
    System.out.println("* " + os.getKey());
}
```

Consulte el [ejemplo completo](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/ListObjects.java) en GitHub.

## Descarga de un objeto
<a name="download-object"></a>

Utilice el método `getObject` del cliente AmazonS3, pasando el nombre del bucket y el objeto que se van a descargar. Si se ejecuta correctamente, el método devuelve un [S3Object](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/s3/model/S3Object.html). *El bucket y la clave de objeto especificados deben existir o se producirá un error*.

Puede obtener el contenido del objeto llamando a `getObjectContent` en el `S3Object`. Esto devuelve un [S3ObjectInputStream](https://docs.aws.amazon.com/sdk-for-java/v1/reference/com/amazonaws/services/s3/model/S3ObjectInputStream.html) que se comporta como un objeto `InputStream` Java estándar.

El siguiente ejemplo descarga un objeto de S3 y guarda su contenido en un archivo (con el mismo nombre que la clave del objeto).

 **Importaciones** 

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.S3Object;
import com.amazonaws.services.s3.model.S3ObjectInputStream;

import java.io.File;
```

 **Código de** 

```
System.out.format("Downloading %s from S3 bucket %s...\n", key_name, bucket_name);
final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.DEFAULT_REGION).build();
try {
    S3Object o = s3.getObject(bucket_name, key_name);
    S3ObjectInputStream s3is = o.getObjectContent();
    FileOutputStream fos = new FileOutputStream(new File(key_name));
    byte[] read_buf = new byte[1024];
    int read_len = 0;
    while ((read_len = s3is.read(read_buf)) > 0) {
        fos.write(read_buf, 0, read_len);
    }
    s3is.close();
    fos.close();
} catch (AmazonServiceException e) {
    System.err.println(e.getErrorMessage());
    System.exit(1);
} catch (FileNotFoundException e) {
    System.err.println(e.getMessage());
    System.exit(1);
} catch (IOException e) {
    System.err.println(e.getMessage());
    System.exit(1);
}
```

Consulte el [ejemplo completo](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/GetObject.java) en GitHub.

## Copiar, mover o cambiar de nombre objetos
<a name="copy-object"></a>

Puede copiar un objeto de un bucket en otro mediante el método `copyObject` del cliente AmazonS3. Este método toma el nombre del bucket desde el que se va a realizar la copia, el objeto destino de la copia y el nombre del bucket de destino.

 **Importaciones** 

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.regions.Regions;
```

 **Código de** 

```
try {
    s3.copyObject(from_bucket, object_key, to_bucket, object_key);
} catch (AmazonServiceException e) {
    System.err.println(e.getErrorMessage());
    System.exit(1);
}
System.out.println("Done!");
```

Consulte el [ejemplo completo](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/CopyObject.java) en GitHub.

**nota**  
Puede utilizar `copyObject` con [deleteObject](#delete-object) para **mover** o **cambiar de nombre** un objeto. Para ello, primero copie el objeto en un nuevo nombre (puede utilizar el mismo bucket como origen y destino) y, a continuación, elimine el objeto de su antigua ubicación.

## Eliminar un objeto
<a name="delete-object"></a>

Utilice el método `deleteObject` del cliente AmazonS3, pasando el nombre del bucket y el objeto que se van a eliminar. *El bucket y la clave de objeto especificados deben existir o se producirá un error*.

 **Importaciones** 

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.regions.Regions;
```

 **Código de** 

```
final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.DEFAULT_REGION).build();
try {
    s3.deleteObject(bucket_name, object_key);
} catch (AmazonServiceException e) {
    System.err.println(e.getErrorMessage());
    System.exit(1);
}
```

Consulte el [ejemplo completo](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/DeleteObject.java) en GitHub.

## Eliminación de varios objetos a la vez
<a name="delete-objects"></a>

Con el método `deleteObjects` del cliente AmazonS3, puede eliminar varios objetos del mismo bucket pasando sus nombres al método `` link:sdk-for-java/v1/reference/com/amazonaws/services/s3/model/DeleteObjectsRequest.html.

 **Importaciones** 

```
import com.amazonaws.AmazonServiceException;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
```

 **Código de** 

```
final AmazonS3 s3 = AmazonS3ClientBuilder.standard().withRegion(Regions.DEFAULT_REGION).build();
try {
    DeleteObjectsRequest dor = new DeleteObjectsRequest(bucket_name)
            .withKeys(object_keys);
    s3.deleteObjects(dor);
} catch (AmazonServiceException e) {
    System.err.println(e.getErrorMessage());
    System.exit(1);
}
```

Consulte el [ejemplo completo](https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/example_code/s3/src/main/java/aws/example/s3/DeleteObjects.java) en GitHub.