阿里雲團隊努力不懈,力求將最新的技術內容更快地以您最熟悉的語言呈現。本文由簡體中文內容自動轉碼而成,過程無人工干預。阿里雲不保證此自動轉碼的準確性、完整性及時效性。因轉碼造成的任何內容錯誤及因此可能帶來的損失,阿里雲概不負責,敬請見諒。本文内容請以簡體中文版本為準。
全部產品
Search
文件中心

上傳回調

更新時間: Oct 19, 2018

以下代碼用於上傳回調(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:23450或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. // 設定回調請求消息頭中Host的值,如oss-cn-hangzhou.aliyuncs.com。
  18. callback.setCallbackHost("oss-cn-hangzhou.aliyuncs.com");
  19. // 設定發起回調時請求body的值。
  20. callback.setCallbackBody("{\\\"mimeType\\\":${mimeType},\\\"size\\\":${size}}");
  21. // 設定發起回調請求的Content-Type。
  22. callback.setCalbackBodyType(CallbackBodyType.JSON);
  23. // 設定發起回調請求的自訂參數,由Key和Value組成,Key必須以x:開始。
  24. callback.addCallbackVar("x:var1", "value1");
  25. callback.addCallbackVar("x:var2", "value2");
  26. putObjectRequest.setCallback(callback);
  27. PutObjectResult putObjectResult = ossClient.putObject(putObjectRequest);
  28. // 讀取上傳回調返回的消息內容。
  29. byte[] buffer = new byte[1024];
  30. putObjectResult.getCallbackResponseBody().read(buffer);
  31. // 資料讀取完成後,獲取的流必須關閉,否則會造成連接泄漏,導致請求無連接可用,程式無法正常工作。
  32. putObjectResult.getCallbackResponseBody().close();
  33. // 關閉OSSClient。
  34. ossClient.shutdown();

上傳回調詳情請參見開發指南中的上傳回調。上傳回調的完整代碼請參見GitHub