Object Storage Service (OSS) admite varios métodos para cargar objetos. Los objetos grandes, es decir, aquellos con un tamaño superior a 5 GB, pueden fallar durante la carga o tardar mucho tiempo en completarla. En estos escenarios, cargue los objetos grandes mediante multipart upload, resumable upload, ossbrowser u ossutil. Este tema describe cómo usar estos métodos de carga para subir objetos grandes.
Métodos de carga
En OSS se pueden cargar objetos de entre 0 bytes y 48.8 TB. Cuando necesite subir objetos grandes o varios objetos al mismo tiempo, utilice métodos de carga alternativos. Estos métodos resultan útiles en a continuación escenarios:
El objeto que desea cargar supera los 5 GB de tamaño y no se puede subir mediante la consola de OSS, simple upload, form upload ni append upload.
Los objetos que desea cargar miden menos de 5 GB, pero el rendimiento deficiente de la red provoca tiempos de espera agotados o desconexiones frecuentes, lo que hace que las cargas fallen a menudo.
Método 1: Multipart upload o resumable upload
Multipart upload y resumable upload son adecuados para a continuación escenarios:
Objetos grandes: los objetos que desea cargar superan los 5 GB de tamaño.
Carga por streaming: necesita iniciar la carga de objetos cuando aún se desconoce su tamaño final; por ejemplo, en aplicaciones de grabación de video en la nube para videovigilancia.
Conexión de red deficiente: se recomienda resumable upload cuando el rendimiento de la red es bajo. Este método le permite cargar únicamente las partes que fallaron. Resulta más eficiente en escenarios donde las cargas se interrumpen con frecuencia, ya que no necesita volver a subir las partes enviadas antes de la interrupción.
Aceleración de la carga: cuando el objeto que desea cargar es grande, suba sus partes en paralelo para acelerar el proceso.
Para obtener más información, consulte Multipart upload y Resumable upload.
Método 2: ossbrowser
Tenga en cuenta a continuación puntos cuando use ossbrowser para cargar objetos:
Utilice un token de Security Token Service (STS) para iniciar sesión en ossbrowser.
Para usar la función de directiva simple, inicie sesión en ossbrowser con el par de AccessKey de un usuario de RAM que tenga permisos de configuración de RAM.
Cuando cargue una gran cantidad de objetos, aumente el número de tareas de carga simultáneas para acelerar el proceso.
De forma predeterminada, ossbrowser usa multipart upload y resumable upload para cargar objetos. El tamaño del objeto que desea cargar no puede superar los 48.8 TB.
Para obtener más información, consulte ossbrowser 2.0.
Método 3: ossutil
Considere a continuación aspectos cuando use ossutil para cargar objetos:
Use el comando
cpde ossutil para cargar objetos grandes.Configure la opción
--bigfile-thresholdpara especificar el umbral de tamaño a partir del cual los objetos se cargan mediante multipart upload simultáneo.Cuando cargue uno o más objetos grandes, configure las opciones
-jobsy-parallelpara controlar el número de tareas simultáneas y optimizar el rendimiento de la carga.Si necesita cargar una gran cantidad de objetos en OSS, incluidos objetos grandes, también puede usar ossimport.
Si la cantidad de objetos que desea cargar al mismo tiempo es pequeña, se recomienda usar ossutil.
Para obtener más información, consulte Upload objects.
Solución de problemas
En esta sección se describen los problemas comunes que pueden surgir al cargar objetos grandes y cómo solucionarlos:
-
Si usa PutObject para cargar objetos grandes, la operación falla. Esto puede deberse a a continuación factores:
El objeto que desea cargar supera los 5 GB. Use ossutil para cargarlo por partes.
-
El objeto que desea cargar mide menos de 5 GB. Debido a condiciones de red deficientes, los objetos pequeños se cargan correctamente, pero al subir un objeto más grande la solicitud no recibe respuesta hasta que se produce un error de tiempo de espera agotado. Esto puede ocurrir porque la unidad máximo de transmisión (MTU) del servidor está configurada con un valor alto. Ejecute
netstat -ien la instancia de ECS para consultar la configuración actual de MTU. La siguiente imagen muestra que el valor predeterminado de MTU para las tarjetas de interfaz de red interna y externa es 1500.
Cambie la MTU a un valor menor. Por ejemplo, ejecute
ip link set dev eth0 mtu 1470en Linux para cambiar la MTU de eth0, que aparece en la imagen anterior, a 1470.Use la operación MultipartUpload o la herramienta ossutil.
-
¿Se puede cargar un solo objeto grande de forma simultánea?
Si usa ossutil para cargar el objeto grande, especifique las opciones
--bigfile-threshold,-jobsy-parallelpara subirlo de manera simultánea.Si usa la operación MultipartUpload de las API de OSS o de los SDK de OSS, escriba código para cargar el objeto de forma simultánea. Algunos SDK de OSS permiten controlar el número de subprocesos simultáneos mediante un parámetro, como taskNum en OSS SDK for Java o num_threads en OSS SDK for Python.