--- title: "Subir objeto" url: https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/stratus/upload-object/ description: "Esta página describe el método del Web SDK para subir un objeto a un bucket." last_updated: 2026-03-30T08:10:30Z service: Cloud Scale type: general related_links: - name: "Stratus Component Help Documentation" url: /es/cloud-scale/help/stratus/introduction - name: "Upload Object Help Documentation" url: /es/cloud-scale/help/stratus/objects/upload-object/ - name: "Java SDK" url: /es/sdk/java/v1/cloud-scale/stratus/upload-object/ - name: "Node.js SDK" url: /es/sdk/nodejs/v2/cloud-scale/stratus/upload-object/ - name: "Python SDK" url: /es/sdk/python/v1/cloud-scale/stratus/upload-object/ - name: "iOS SDK" url: /es/sdk/ios/v2/cloud-scale/stratus/upload-object/ - name: "Android SDK" url: /es/sdk/android/v2/cloud-scale/stratus/upload-object/ - name: "Flutter SDK" url: /es/sdk/flutter/v2/cloud-scale/stratus/upload-object/ - name: "REST API" url: /es/api/code-reference/cloud-scale/stratus/get-all-buckets/#GetAllBuckets --- # Subir objeto El método del SDK listado en esta sección te permitirá [subir objetos](https://docs.catalyst.zoho.com/es/cloud-scale/help/stratus/objects/upload-object/) al [bucket](https://docs.catalyst.zoho.com/es/cloud-scale/help/stratus/buckets/name-bucket/). La referencia de Stratus utilizada en el fragmento de código a continuación es la [instancia del componente](https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/stratus/initialize-stratus-instance/). Si no tienes el [Versionado](https://docs.catalyst.zoho.com/es/cloud-scale/help/stratus/stratus-config/general-settings/#versioning) habilitado para tu objeto, y si Stratus recibe múltiples solicitudes de escritura para el mismo objeto, el objeto se sobrescribirá continuamente. La última subida del objeto será el único objeto que se almacene. Sin embargo, con el Versionado habilitado, cada subida se considerará una versión del objeto, y todas se almacenarán en el bucket, cada una con un `versionId` único. > **Nota:** Los siguientes caracteres, incluyendo el espacio, no son compatibles cuando creas una ruta o un objeto: comillas dobles, ambos paréntesis angulares, hashtag, barra invertida y símbolo de barra vertical. **Parámetros utilizados**
Nombre del parámetro Tipo de dato Definición
`key` **String** Un parámetro **obligatorio**. Contendrá el nombre completo del objeto junto con su [ruta](https://docs.catalyst.zoho.com/es/cloud-scale/help/stratus/objects/introduction/#path).
`File` **File | String** Un parámetro **obligatorio**. El objeto que necesita ser subido.
`options` **JSON Object**
  • `overwrite`: Este es un parámetro **String** opcional.
    • Si el *Versionado* para tu bucket no está habilitado, entonces necesitas usar esta opción si deseas sobrescribir un recurso.
    • Valor por defecto: `false`
  • `ttl`: Este es un parámetro **String | Number** opcional.
    • Puedes establecer el **Time-to-Live** (ttl) en segundos para un objeto.
    • El valor debe ser mayor o igual a **60 segundos**.
  • `type`: Este es un parámetro **String** opcional.
    • Este parámetro se puede usar para sobrescribir el `content-type` del objeto.
    • Si no pasas este parámetro, entonces por defecto el valor de `type` será `application/octet-stream`
  • `meta`: Este es un parámetro **JSON Object** opcional. Se usa para agregar los detalles de metadatos de un objeto que se está subiendo a un bucket. El valor por defecto es un objeto JSON vacío
`processCallback` **Function** Función de callback durante la descarga del archivo
### Subir objeto como archivo El siguiente método del SDK te permitirá subir un archivo de objeto a un bucket en Stratus. ```javascript // Subir objeto como File const file = document.getElementById("uploadedFiles").files[0] const putObject = await bucket.putObject("key", file); const putObjectStart = putObject.start(); // para iniciar la solicitud const putObjectAbort = putObject.abort(); // para cancelar la solicitud ``` ### Subir objeto como string El siguiente método del SDK te permitirá subir un objeto de tipo string a un bucket en Stratus. ```javascript // Subir objeto como String const putObject = await bucket.putObject("key", "Content of the file"); const putObjectStart = putObject.start(); // para iniciar la solicitud const putObjectAbort = putObject.abort(); // para cancelar la solicitud ``` ### Subir objeto con opciones El siguiente método del SDK te permitirá subir cualquier objeto a un bucket en Stratus. Usando este método del SDK puedes implementar el parámetro `options` para proporcionar instrucciones de `type`, `overwrite` y `ttl`. ```javascript // Subir objeto con opciones const options = { "overwrite": true, //To overwrite an existing object "ttl": 300, //After 300 seconds the object will be deleted from the bucket "type": "text/plain" // Tipo de archivo del objeto que se está subiendo } const putObject = await bucket.putObject("key", "Content of the file", options); const putObjectStart = putObject.start(); // para iniciar la solicitud const putObjectAbort = putObject.abort(); // para cancelar la solicitud ``` ### Subir objeto con Process Callback El siguiente fragmento del SDK te permitirá subir un objeto particular a un bucket en Stratus con opciones de process callback. Este SDK se utiliza mejor cuando deseas realizar una función adicional como logging, renderizar pantallas de carga/buffer, etc. junto con la operación de subida. ```javascript // Ejecutar una función mientras se sube el objeto const processCallback = () => { // Función a ejecutar mientras el objeto se está subiendo console.log("Uploading Object"); } const options = { "overwrite": true, "ttl": 300, "type": "text/plain" } const putObject = await bucket.putObject("key", "Content of the file", options, processCallback); const putObjectStart = putObject.start(); // para iniciar la solicitud const putObjectAbort = putObject.abort(); // para cancelar la solicitud ``` ### Subir objeto con sus detalles de metadatos El siguiente fragmento del SDK te permitirá subir un objeto particular junto con sus [metadatos](https://docs.catalyst.zoho.com/es/cloud-scale/help/stratus/objects/introduction/#metadata) a un bucket en Stratus. ```javascript // Subir objeto con metadatos const options = { "overwrite": true, "ttl": 300, "type": "text/plain" // Tipo de archivo del objeto a subir "meta": { "object_meta_key" : "object_meta_value" } } const putObject = await bucket.putObject("key", "Content of the file", options); const putObjectStart = putObject.start(); // para iniciar la solicitud const putObjectAbort = putObject.abort(); // para cancelar la solicitud ``` **Respuesta de ejemplo** ```json { "status": 200, "content": true | false, //true: subido exitosamente y false: error en la subida "message": "OK" } ``` ### Subida multiparte Cuando el objeto que necesitas subir es demasiado grande para subirlo, puedes realizar una operación multiparte. La operación multiparte dividirá el objeto en múltiples partes y realizará una subida más rápida. En esta sección del SDK, vamos a revisar todos los métodos del SDK disponibles para realizar la subida multiparte de objetos en Stratus. #### Crear instancia multiparte Para realizar operaciones multiparte, necesitas obtener una instancia de objeto multiparte. Haremos referencia a esta instancia del componente en varios fragmentos de código donde trabajamos con operaciones multiparte que se realizan en objetos almacenados en un bucket en Stratus. La referencia de Bucket utilizada en el fragmento de código a continuación es la [instancia del componente](https://docs.catalyst.zoho.com/es/sdk/web/v4/cloud-scale/stratus/initialize-stratus-instance/#initialize-bucket-instance). ```javascript const multipart = bucket.getMultipartInstance("key"); ``` #### Iniciar subida multiparte **Iniciar subida multiparte sin opciones** Usando el siguiente método del SDK, Stratus devolverá un `uploadId`. Este ID nos permitirá subir múltiples partes del objeto. ```javascript // iniciar subida const initiateUpload = await multipart.initiateUpload(); ``` **Iniciar subida multiparte con opciones** Usando el siguiente método del SDK, Stratus devolverá un `uploadId`. Este ID nos permitirá subir múltiples partes del objeto. Además, usando este método del SDK puedes implementar el parámetro `options` para proporcionar instrucciones de `type`. **Parámetros utilizados**
Nombre del parámetro Tipo de dato Definición
`type` **String**
  • Este parámetro es una clave en el parámetro `options` de tipo **JSON Object**.
  • Este parámetro se puede usar para sobrescribir el `content-type` del objeto.
  • Si no pasas este parámetro, entonces por defecto el valor de `type` será `application/octet-stream`
```javascript // iniciar subida con opciones const options = { type: "application/json" } const initiateUpload = await multipart.initiateUpload(options); ``` **Respuesta de ejemplo** ```json { "status": 200, "content": { "bucket": "llm-development", "key": "a/cv", "upload_id": "01hyj639a9zfbg8j7q86nsrj6r" }, "message": "OK" } ``` #### Subir una parte del objeto En el siguiente método del SDK, vamos a realizar subidas de las partes individuales del objeto. Cada parte tendrá un `part` distinto que va desde **1 hasta 1000**. Aunque esto representa el orden de las partes, estas partes no necesariamente se subirán en secuencia. Estas partes se combinarán en secuencia una vez que se complete la subida de todas las partes de los objetos. **Parámetros utilizados**
Nombre del parámetro Tipo de dato Definición
`file` **File** El objeto que necesita ser subido.
`part` **Number** Contendrá el orden de las partes que se están subiendo.
```javascript const partNumber = 1; const file = document.getElementById("uploadedFiles").files[0] const uploadPart = await multipart.uploadPart(file, partNumber) const uploadPartStart = uploadPart.start(); // para iniciar la solicitud const uploadPartAbort = uploadPart.abort(); // para cancelar la solicitud ``` **Respuesta de ejemplo** ```json { "status": 200, "content": true | false, //true: subido exitosamente y false: error en la subida "message": "OK" } ``` #### Completar subida multiparte El siguiente método nos permite terminar el proceso multiparte una vez que todas las partes se han subido exitosamente. ```javascript const completeUpload = await multipart.completeUpload() ``` **Parámetros utilizados**
Nombre del parámetro Tipo de dato Definición
`options` **JSON Object** `meta`: Este es un parámetro **JSON Object** opcional. Se usa para agregar los detalles de metadatos de un objeto que se está subiendo a un bucket. El valor por defecto es un objeto JSON vacío
**Respuesta de ejemplo** ```json { "status": 200, "content": true | false, //true: subido exitosamente y false: error en la subida "message": "OK" } ``` #### Obtener resumen de subida El siguiente método del SDK se puede usar para obtener un resumen operativo de todas las partes subidas. Para ver el resumen, usaremos el método `getUploadSummary()`. ```javascript const getUploadSummary = await multipart.getUploadSummary(); ``` **Respuesta de ejemplo** ```json { "bucket": "zcstratus12345-development", "key": "sasm.txt", "upload_id": "01hyfyeazrrstmt7k5fa7ej726", "status": "PENDING", "parts": [ { "part_number": 1, "size": 0, "uploaded_at": 1716374678999 }, { "part_number": 2, "size": 2797094, "uploaded_at": 1716374678576 }, { "part_number": 4, "size": 0, "uploaded_at": 1716374679136 } ] } ``` ### Subir un objeto envolviendo toda la funcionalidad multiparte El siguiente método del SDK actúa como un envoltorio, donde toda la operación de subida multiparte se lleva a cabo sin emplear múltiples pasos. Usando este método, el objeto se divide en múltiples partes, se sube al bucket en múltiples partes y luego se combina una vez que todas las partes se suben. Sin embargo, el siguiente método solo se recomienda usar en las siguientes condiciones: * El `max_part_size` del objeto puede ser el tamaño completo del archivo. Sin embargo, para asegurar una subida más rápida, te recomendamos mantener el `max_part_size` en **100MB** o menos. * El `min_part_size` del objeto debe ser **5MB** o más. * El tamaño total del objeto debe ser **10GB** o menos. > **Nota:** Para objetos que son **mayores de 10GB**, recomendamos que uses los **métodos individuales del SDK** para llevar a cabo la operación de subida multiparte exitosamente. **Parámetros utilizados**
Nombre del parámetro Tipo de dato Definición
`file` **File** El objeto que necesita ser subido.
`partSize` **Number** Contendrá el tamaño de cada parte del objeto que se está subiendo.
`options` **JSON Object** `type`: Este parámetro es una clave en este objeto JSON.
  • Es un parámetro **String**.
  • Este parámetro se puede usar para sobrescribir el `content-type` del objeto.
  • Si no pasas este parámetro, entonces se tomará el tipo del archivo por defecto. Si el archivo en sí no tiene un tipo, entonces por defecto el valor de `type` será `application/octet-stream`
  • `meta`: Este es un parámetro **JSON Object** opcional. Se usa para agregar los detalles de metadatos de un objeto que se está subiendo a un bucket. El valor por defecto es un objeto JSON vacío
**Subir un objeto envolviendo toda la funcionalidad multiparte sin opciones** ```javascript // subir objeto const partSize = 10; // en MB const file = document.getElementById("uploadedFiles").files[0] const uploadObject = await multipart.uploadObject(file, partSize); ``` **Subir un objeto envolviendo toda la funcionalidad multiparte con opciones** ```javascript // subir objeto con opciones const partSize = 10; // en MB const file = document.getElementById("uploadedFiles").files[0] const options = { type: "application/json" // tipo de contenido del objeto a sobrescribir } const uploadObject = await multipart.uploadObject(file, partSize, options); ``` **Respuesta de ejemplo** ```json { "status": 200, "content": true | false, //true: subido exitosamente y false: error en la subida "message": "OK" } ```