Para mejorar la eficiencia al cargar un objeto grande, Object Storage Service (OSS) ofrece dos métodos: carga reanudable y carga en varias partes. Este tema describe los métodos anteriores y proporciona enlaces a la documentación relacionada para mayor referencia.
Notas de uso
Si utiliza una carga simple, como PutObject, para cargar un objeto grande, pueden presentarse los siguientes problemas:
Límite en el tamaño máximo del objeto: no es posible cargar un objeto de más de 5 GB mediante la operación
PutObject. Los intentos de cargar un objeto superior a 5 GB fallan.Tiempo necesario para la carga del objeto: cargar un objeto grande requiere mucho tiempo, sobre todo cuando la conexión de red es deficiente. La transmisión prolongada de datos es vulnerable a las fluctuaciones de la red, lo que puede provocar interrupciones o tiempos de espera agotados.
Consumo de memoria: la carga de un objeto grande incrementa el consumo de memoria, especialmente si esta es escasa o el entorno tiene limitaciones. Esto afecta la estabilidad y el rendimiento del sistema.
Por lo tanto, se recomienda utilizar la carga reanudable o la carga en varias partes para mejorar la eficiencia y la confiabilidad al cargar un objeto grande.
Carga reanudable
Resumable upload (OSS SDK for Go 1.0) es un método eficiente para cargar objetos grandes, en especial cuando la conexión de red es inestable o el tamaño del objeto supera los 5 GB. La carga reanudable divide automáticamente un objeto en varias partes y las carga en paralelo. Durante este proceso, el avance se registra en un archivo checkpoint. Si la carga se interrumpe, el objeto se vuelve a cargar desde la posición registrada en dicho archivo. No es necesario volver a cargar el objeto completo, lo que mejora significativamente la eficiencia y la confiabilidad.
Carga en varias partes
Multipart upload (Go SDK V1) es un método común para cargar objetos grandes. Debe dividir manualmente el objeto grande en varias partes y luego llamar a las operaciones de carga en varias partes para subirlas. En comparación con la carga reanudable, este método ofrece mayor flexibilidad. Permite ajustar dinámicamente el tamaño de las partes y cancele las tareas de carga durante el proceso. Es adecuado para escenarios donde se requiere una gestión detallada del proceso de carga.
Comparación de métodos
|
Elemento |
Carga reanudable |
Carga en varias partes |
|
Escenario |
Diseñado para usuarios que desean cargar objetos grandes de forma rápida y sencilla, sin preocuparse por detalles específicos. |
Recomendado cuando los usuarios necesitan gestionar el proceso de carga de manera detallada y cuentan con conocimientos técnicos. |
|
Carga simultánea |
Compatible. |
Compatible. |
|
Reanudación de la carga desde la posición con errores |
Compatible. El objeto se vuelve a cargar desde la posición registrada en el archivo checkpoint. |
No compatible. No es posible reanudar directamente la carga desde la posición registrada en el archivo checkpoint. |
|
Tamaño de las partes |
Se debe definir previamente el tamaño de las partes. |
El tamaño de las partes se ajusta dinámicamente. |
|
Confiabilidad |
Alta. Reduce los fallos de carga provocados por fluctuaciones de la red. |
Menor que la de la carga reanudable. Las partes con errores se deben resolver manualmente. |
|
Dificultad de gestión |
Baja. Solo se requiere llamar a la operación UploadFile. |
Alta. Es necesario llamar a las operaciones InitiateMultipartUpload, UploadPart, and CompleteMultipartUpload. |
|
Flexibilidad |
No permite gestionar el proceso de carga de manera detallada. |
Alta. El proceso de carga se gestiona manualmente, lo que facilita el monitoreo en tiempo real de las tareas. |
|
Dificultad de desarrollo |
Muy baja. Basta con llamar a la operación UploadFile para completar la tarea de carga reanudable. |
Alta. Requiere dividir manualmente el objeto grande, escribir lógica adicional de gestión, llamar a varias operaciones para completar la tarea y manejar diversos errores. |