La carga de archivos grandes a través de una red inalámbrica consume mucho tiempo. Una carga puede fallar por condiciones deficientes de la red o por cambios en esta, lo que obliga a reiniciar el proceso desde el inicio. El kit de desarrollo de software (SDK) de Android incluye una función de carga reanudable para resolver este problema.
Notas de uso
El SDK de OSS para Android ofrece los siguientes métodos para ejecutar una carga reanudable: resumableUpload y sequenceUpload.
(Recomendado) resumableUpload indica que varias partes se cargan en paralelo. Se pueden cargar hasta cinco partes al mismo tiempo.
sequenceUpload indica que las partes se cargan de forma secuencial. La siguiente parte se carga cuando termina la anterior.
En este tema, el código de ejemplo muestra únicamente cómo ejecutar una carga reanudable con el método resumableUpload. Si necesita cargar varios objetos mediante este tipo de carga, cree varias solicitudes resumableUpload.
Notas de uso
Antes de ejecutar el código de ejemplo de este tema, cree una instancia de OSSClient mediante métodos como el uso de un nombre de dominio personalizado o Security Token Service (STS). Para obtener más información, consulte Initialization (Android SDK).
Se recomienda no usar la carga reanudable para objetos menores a 5 GB desde un celular. Esta función se implementa con la carga multiparte. Al aplicarla a un solo objeto, genera varias solicitudes de red, lo cual resulta ineficiente. Cuando cargue un objeto mayor a 5 GB mediante este método, tenga en cuenta los siguientes puntos:
-
Antes de la carga reanudable
Antes de cargar un objeto en OSS con este método, especifique un directorio para el archivo de punto de control que almacena el progreso de la carga. Este archivo aplica solo a la tarea actual.
Si no especifica el directorio del archivo de punto de control y falla la carga de una parte por problemas de red, se requiere mucho tiempo y tráfico para volver a cargar todo el objeto.
Si especifica el directorio del archivo de punto de control, una tarea con errores se puede reanudar desde la posición registrada en dicho archivo.
-
Durante la carga reanudable
Este método permite cargar únicamente archivos locales. Admite la función de devolución de llamada de carga, que se usa igual que en las tareas comunes. Para obtener más información, consulte Callback.
La carga reanudable se ejecuta mediante las siguientes operaciones de API: InitMultipartUpload, UploadPart, ListParts, CompleteMultipartUpload y AbortMultipartUpload. Si utiliza Security Token Service (STS), compruebe que tiene autorización para llamar estas operaciones de API.
De forma predeterminada, la validación MD5 se habilita para cada parte durante la carga reanudable. Por lo tanto, no es necesario establecer el encabezado
Content-Md5en la solicitud.Si una tarea de carga reanudable finaliza con errores y no se completa, las partes cargadas quedan sin utilidad en OSS. Para solucionar esto, configure reglas de ciclo de vida en el bucket donde se almacenan las partes y elimínelas periódicamente. Para obtener más información, consulte Configure lifecycle rules.
Ejemplos
Cargue un archivo local en OSS de forma síncrona o asíncrona mediante la carga reanudable.
Referencias
Para obtener más información sobre cómo configurar reglas de ciclo de vida en un bucket, consulte Configure lifecycle rules.
Para obtener más información sobre cómo implementar una devolución de llamada de carga en una carga reanudable, consulte Callback.
Para obtener más información sobre cómo inicializar una instancia de OSSClient, consulte Initialization.