Aviso:

Para brindarle información de soporte completa de manera más rápida, el contenido de esta página ha sido traducido al español mediante traducción automática. Para consultar la información de soporte más precisa, consulte la versión en inglés de este contenido.

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.

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

copy
// 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.

copy
// 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.

copy
// 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.

copy
// 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.

copy
// 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

copy
{
 	"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.

copy
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.

copy
// 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
copy
// iniciar subida con opciones
const options = {
	type: "application/json"
}
const initiateUpload = await multipart.initiateUpload(options);

Respuesta de ejemplo

copy
{
  "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.
copy
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

copy
{
 	"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.

copy
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

copy
{
 	"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().

copy
const getUploadSummary = await multipart.getUploadSummary();

Respuesta de ejemplo

copy
{
 "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

copy
// 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

copy
// 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

copy
{
 	"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