Une fois un objet chargé, Object Storage Service (OSS) peut envoyer un rappel au serveur d'application. Pour configurer les rappels de chargement, ajoutez simplement les paramètres requis à la requête de chargement envoyée à OSS. Cette rubrique explique comment configurer les rappels de chargement.
Par rapport à un chargement simple, le chargement d'un objet avec rappel configuré impose au client un temps d'attente plus long pour le traitement de la requête et la réception de la réponse.
Le chargement de l'objet et l'envoi du rappel sont asynchrones : le fichier local est chargé vers OSS avant l'exécution du rappel. Par conséquent, le chargement du fichier local aboutit même si le rappel échoue.
Remarques sur l'utilisation
Avant d'exécuter l'exemple de code de cette rubrique, créez une instance OSSClient en utilisant un nom de domaine personnalisé ou le Security Token Service (STS). Pour plus d'informations, consultez Initialisation (SDK Android).
Exemples
L'exemple de code suivant montre comment configurer un rappel de chargement :
// Create an upload request.
// Specify the bucket name, the full path of the object, and the full path of the local file. For example, examplebucket, exampledir/exampleobject.txt, and /storage/emulated/0/oss/examplefile.txt.
// The full path of the object cannot contain the bucket name.
PutObjectRequest put = new PutObjectRequest("examplebucket", "exampledir/exampleobject.txt", "/storage/emulated/0/oss/examplefile.txt");
put.setCallbackParam(new HashMap<String, String>() {
{
put("callbackUrl", "http://oss-demo.aliyuncs.com:23450");
put("callbackHost", "yourCallbackHost");
put("callbackBodyType", "application/json");
put("callbackBody", "{\"mimeType\":${mimeType},\"size\":${size}}");
}
});
OSSAsyncTask task = oss.asyncPutObject(put, new OSSCompletedCallback<PutObjectRequest, PutObjectResult>() {
@Override
public void onSuccess(PutObjectRequest request, PutObjectResult result) {
Log.d("PutObject", "UploadSuccess");
// This value contains data only if servercallback is set.
String serverCallbackReturnJson = result.getServerCallbackReturnBody();
Log.d("servercallback", serverCallbackReturnJson);
}
@Override
public void onFailure(PutObjectRequest request, ClientException clientExcepion, ServiceException serviceException) {
// Handle exceptions.
}
});
L'exemple de code suivant montre comment configurer des paramètres personnalisés :
put.setCallbackParam(new HashMap<String, String>() {
{
put("callbackUrl", "http://oss-demo.aliyuncs.com:23450");
put("callbackHost", "yourCallbackHost");
put("callbackBodyType", "application/json");
put("callbackBody", "{\"object\":${object},\"size\":${size},\"my_var1\":${x:var1},\"my_var2\":${x:var2}}");
}
});
put.setCallbackVars(new HashMap<String, String>() {
{
put("x:var1", "value1");
put("x:var2", "value2");
}
});
Références
Pour consulter l'exemple de code complet de configuration des rappels de chargement, visitez GitHub.
Pour plus d'informations sur l'opération API permettant de configurer les rappels de chargement, consultez Rappel.
Pour plus d'informations sur l'initialisation d'une instance OSSClient, consultez Initialisation.