Subir objeto
El método del SDK listado en esta sección te permitirá subir objetos al bucket. La referencia de Stratus utilizada en el fragmento de código a continuación es la instancia del componente.
Si no tienes el Versionado 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.
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. |
| File | File | String | Un parámetro obligatorio. El objeto que necesita ser subido. |
| options | JSON Object |
|
| 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.
// 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.
// 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.
// 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.
// 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 a un bucket en Stratus.
// 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
{
"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.
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.
// 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 |
|
// iniciar subida con opciones
const options = {
type: "application/json"
}
const initiateUpload = await multipart.initiateUpload(options);
Respuesta de ejemplo
{
"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. |
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
{
"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.
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
{
"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().
const getUploadSummary = await multipart.getUploadSummary();
Respuesta de ejemplo
{
"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.
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.
|
Subir un objeto envolviendo toda la funcionalidad multiparte sin opciones
// 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
// 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
{
"status": 200,
"content": true | false, //true: subido exitosamente y false: error en la subida
"message": "OK"
}
Última actualización 2026-03-30 13:40:30 +0530 IST
Yes
No
Send your feedback to us