上传回调
本文介绍如何使用上传回调。
OSS在上传文件完成的时候可以提供回调(Callback)给应用服务器。您只需要在发送给OSS的请求中携带相应的Callback参数,即能实现回调。因为加入了回调请求和响应的过程,相比简单上传,使用回调通知机制一般会导致客户端花费更多的等待时间。
以下代码用于上传回调:
PutObjectRequest put = new PutObjectRequest(testBucket, testObject, uploadFilePath);
put.setCallbackParam(new HashMap<String, String>() {
{
put("callbackUrl", "110.75.82.106/callback");
put("callbackHost", "oss-cn-hangzhou.aliyuncs.com");
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");
// 只有设置了servercallback,这个值才有数据
String serverCallbackReturnJson = result.getServerCallbackReturnBody();
Log.d("servercallback", serverCallbackReturnJson);
}
@Override
public void onFailure(PutObjectRequest request, ClientException clientExcepion, ServiceException serviceException) {
// 异常处理
}
});
如果需要支持自定义参数,参考如下设置:
put.setCallbackParam(new HashMap<String, String>() {
{
put("callbackUrl", "http://182.92.192.125/leibin/notify.php");
put("callbackHost", "oss-cn-hangzhou.aliyuncs.com");
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");
}
});
有关Callback的更多信息,请参考Callback API文档说明。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论