Le téléchargement de fichiers volumineux via un réseau sans fil peut prendre beaucoup de temps. Une connexion réseau instable ou un changement de réseau peuvent entraîner l'échec du téléchargement, vous obligeant à le recommencer depuis le début. Le kit de développement logiciel (SDK) Android propose une fonctionnalité de téléchargement avec reprise pour résoudre ce problème.
Notes d'utilisation
Le SDK OSS pour Android fournit les méthodes suivantes pour effectuer un téléchargement avec reprise : resumableUpload et sequenceUpload.
(Recommandé)
resumableUploadpermet le téléchargement parallèle de plusieurs parties. Jusqu'à cinq parties peuvent être téléchargées simultanément.sequenceUploadspécifie que les parties sont téléchargées séquentiellement. La partie suivante est téléchargée une fois la précédente terminée.
Dans cette rubrique, l'exemple de code illustre uniquement l'utilisation de la méthode resumableUpload. Pour télécharger plusieurs objets avec reprise, vous devez créer plusieurs requêtes resumableUpload.
Remarques importantes
Avant d'exécuter l'exemple de code présenté dans cette rubrique, vous devez créer une instance OSSClient en utilisant des méthodes telles qu'un nom de domaine personnalisé ou le Security Token Service (STS). Pour plus d'informations, consultez Initialisation (SDK Android).
Il est déconseillé d'utiliser le téléchargement avec reprise pour des objets inférieurs à 5 Go sur un appareil mobile. Cette fonctionnalité s'appuie sur le téléchargement multipartite, qui nécessite plusieurs requêtes réseau pour un seul objet, ce qui s'avère inefficace. Lors du téléchargement avec reprise d'un objet supérieur à 5 Go, tenez compte des points suivants :
-
Avant le téléchargement avec reprise
Avant de télécharger un objet vers OSS avec reprise, vous pouvez spécifier un répertoire pour le fichier de point de contrôle (checkpoint) qui enregistre la progression du téléchargement. Ce fichier ne s'applique qu'à la tâche de téléchargement en cours.
Si vous ne spécifiez pas de répertoire pour le fichier de point de contrôle et qu'une partie d'un objet volumineux échoue en raison de problèmes réseau, le re-téléchargement complet de l'objet prendra beaucoup de temps et consommera une quantité importante de trafic.
Si vous spécifiez le répertoire du fichier de point de contrôle, une tâche de téléchargement interrompue pourra reprendre exactement là où elle s'était arrêtée, selon les informations enregistrées dans ce fichier.
-
Pendant le téléchargement avec reprise
Le téléchargement avec reprise concerne uniquement les fichiers locaux. Il prend en charge la fonctionnalité de rappel (callback), utilisée de la même manière que pour les tâches de téléchargement standard. Pour plus d'informations, consultez Rappel.
Le téléchargement avec reprise fait appel aux opérations API suivantes :
InitMultipartUpload,UploadPart,ListParts,CompleteMultipartUploadetAbortMultipartUpload. Si vous utilisez le Security Token Service (STS), assurez-vous d'être autorisé à appeler ces opérations.Par défaut, la validation MD5 est activée pour chaque partie lors d'un téléchargement avec reprise. Vous n'avez donc pas besoin de définir l'en-tête
Content-Md5dans la requête.Si une tâche de téléchargement avec reprise échoue et n'est pas finalisée, les parties déjà téléchargées deviennent inutiles dans OSS. Pour gérer cela, configurez des règles de cycle de vie sur le bucket contenant ces parties afin de les supprimer régulièrement. Pour plus d'informations, consultez Configurer des règles de cycle de vie.
Exemples
Vous pouvez télécharger un fichier local vers OSS de manière synchrone ou asynchrone en utilisant le téléchargement avec reprise.
Références
Pour plus d'informations sur la configuration des règles de cycle de vie d'un bucket, consultez Configurer des règles de cycle de vie.
Pour plus d'informations sur la mise en œuvre d'un rappel (callback) lors d'un téléchargement avec reprise, consultez Rappel.
Pour plus d'informations sur l'initialisation d'une instance OSSClient, consultez Initialisation.