

# Carga de objetos en un bucket de directorio
<a name="directory-buckets-objects-upload"></a>

Después de crear un bucket de directorio de Amazon S3, puede cargar objetos en él. En estos ejemplos se muestra cómo cargar un objeto en un bucket de directorio mediante la consola de S3 y los SDK de AWS. Para obtener más información sobre las operaciones de carga de objetos de forma masiva con S3 Express One Zone, consulte [Administración de objetos](directory-bucket-high-performance.md#s3-express-features-object-management). 

## Uso de la consola de S3
<a name="directory-bucket-upload-console"></a>

1. Inicie sesión en la Consola de administración de AWS y abra la consola de Amazon S3 en [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/).

1. En el panel de navegación izquierdo, elija **Buckets de directorio**.

1. Elija el nombre del bucket en el que desea cargar sus carpetas o archivos.

1. En la pestaña **Objetos**, elija **Cargar**.

1. En la página **Cargar**, lleve a cabo alguna de las siguientes acciones: 
   + Arrastre y suelte archivos y carpetas en el área de carga punteada.
   + Elija **Agregar archivos** o **Agregar carpeta**, elija los archivos o carpetas que desee cargar y, a continuación, seleccione **Abrir** o **Cargar**.

1. En **Sumas de comprobación**, seleccione la **función de suma de comprobación** que desee usar. 

   (Opcional) Si va a cargar un único objeto de un tamaño inferior a 16 MB, también puede especificar un valor de suma de comprobación precalculado. Al proporcionar un valor precalculado, Amazon S3 lo compara con el valor que calcula mediante la función de suma de comprobación seleccionada. Si los valores no coinciden, la carga no se iniciará. 

1. Las opciones de las secciones **Permisos** y **Propiedades** se configuran automáticamente con la configuración predeterminada y no se pueden modificar. El bloqueo de acceso público se habilita automáticamente. El control de versiones de S3 y el bloqueo de objetos de S3 no se pueden habilitar en los buckets de directorio. 

   (Opcional) Si quiere agregar metadatos en pares clave-valor a sus objetos, expanda la sección **Propiedades** y, a continuación, en la sección **Metadatos**, elija **Agregar metadatos**.

1. Para cargar inmediatamente los archivos y carpetas indicados, elija **Cargar**.

   Amazon S3 carga sus objetos y carpetas. Cuando finalice la carga, puede ver un mensaje de éxito en la página **Cargar: estado**.

## Uso de los AWS SDK
<a name="directory-bucket-upload-sdks"></a>

------
#### [ SDK for Java 2.x ]

**Example**  

```
public static void putObject(S3Client s3Client, String bucketName, String objectKey, Path filePath) {
       //Using File Path to avoid loading the whole file into memory
       try {
           PutObjectRequest putObj = PutObjectRequest.builder()
                   .bucket(bucketName)
                   .key(objectKey)
                   //.metadata(metadata)
                   .build();
           s3Client.putObject(putObj, filePath);               
           System.out.println("Successfully placed " + objectKey +" into bucket "+bucketName);
                                              
       }
       
       catch (S3Exception e) {
           System.err.println(e.getMessage());
           System.exit(1);
       }
}
```

------
#### [ SDK for Python ]

**Example**  

```
import boto3
import botocore
from botocore.exceptions import ClientError
    
    
def put_object(s3_client, bucket_name, key_name, object_bytes):
    """  
    Upload data to a directory bucket.
    :param s3_client: The boto3 S3 client
    :param bucket_name: The bucket that will contain the object
    :param key_name: The key of the object to be uploaded
    :param object_bytes: The data to upload
    """
    try:
        response = s3_client.put_object(Bucket=bucket_name, Key=key_name,
                             Body=object_bytes)
        print(f"Upload object '{key_name}' to bucket '{bucket_name}'.") 
        return response
    except ClientError:    
        print(f"Couldn't upload object '{key_name}' to bucket '{bucket_name}'.")
        raise

def main():
    # Share the client session with functions and objects to benefit from S3 Express One Zone auth key
    s3_client = boto3.client('s3')
    # Directory bucket name must end with --zone-id--x-s3
    resp = put_object(s3_client, 'doc-bucket-example--use1-az5--x-s3', 'sample.txt', b'Hello, World!')
    print(resp)

if __name__ == "__main__":
    main()
```

------

## Uso de AWS CLI
<a name="directory-upload-object-cli"></a>

En el siguiente comando de ejemplo de `put-object`, se muestra cómo puede utilizar la AWS CLI para cargar un objeto de Amazon S3. Para ejecutar este comando, sustituya los `user input placeholders` con su propia información.

```
aws s3api put-object --bucket bucket-base-name--zone-id--x-s3 --key sampleinut/file001.bin --body bucket-seed/file001.bin
```

Para obtener más información, consulte [https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object.html](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3api/put-object.html) en la *Referencia de comandos de la AWS CLI*.

**Topics**
+ [Uso de las cargas multiparte con buckets de directorio](s3-express-using-multipart-upload.md)