全部产品
弹性计算 会员服务 网络 安全 移动云 数加·大数据分析及展现 数加·大数据应用 管理与监控 云通信 阿里云办公 培训与认证 智能硬件
存储与CDN 数据库 域名与网站(万网) 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 开发者工具 解决方案 物联网 更多
对象存储 OSS

上传回调

更新时间:2018-07-02 11:49:23

以下代码用于上传回调(callback):

  1. // Endpoint以杭州为例,其它Region请按实际情况填写。
  2. String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
  3. // 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
  4. String accessKeyId = "<yourAccessKeyId>";
  5. String accessKeySecret = "<yourAccessKeySecret>";
  6. String bucketName = "<yourBucketName>";
  7. String objectName = "<yourObjectName>";
  8. // 您的回调服务器地址,如http://oss-demo.aliyuncs.com或http://127.0.0.1:9090。
  9. String callbackUrl = "<yourCallbackServerUrl>";
  10. // 创建OSSClient实例。
  11. OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
  12. String content = "Hello OSS";
  13. PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName,new ByteArrayInputStream(content.getBytes()));
  14. // 上传回调参数。
  15. Callback callback = new Callback();
  16. callback.setCallbackUrl(callbackUrl);
  17. // Endpoint以杭州为例,其它Region请按实际情况填写
  18. callback.setCallbackHost("oss-cn-hangzhou.aliyuncs.com");
  19. callback.setCallbackBody("{\\\"mimeType\\\":${mimeType},\\\"size\\\":${size}}");
  20. callback.setCallbackBodyType(CallbackBodyType.JSON);
  21. callback.addCallbackVar("x:var1", "value1");
  22. callback.addCallbackVar("x:var2", "value2");
  23. putObjectRequest.setCallback(callback);
  24. PutObjectResult putObjectResult = ossClient.putObject(putObjectRequest);
  25. // 读取上传回调返回的消息内容。
  26. byte[] buffer = new byte[1024];
  27. putObjectResult.getCallbackResponseBody().read(buffer);
  28. // 数据读取完成后,获取的流必须关闭,否则会造成连接泄漏,导致请求无连接可用,程序无法正常工作。
  29. putObjectResult.getCallbackResponseBody().close();
  30. // 关闭OSSClient。
  31. ossClient.shutdown();

上传回调详情请参见开发指南中的上传回调。上传回调的完整代码请参见GitHub

本文导读目录