全部產品
Search
文件中心

Object Storage Service:追加上傳

更新時間:Aug 30, 2018

追加類型的檔案(Append Object)暫時不支援copyObject操作。

以下代碼用於追加上傳檔案:

  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 content1 = "Hello OSS A \n";
  7. String content2 = "Hello OSS B \n";
  8. String content3 = "Hello OSS C \n";
  9. // 建立OSSClient執行個體。
  10. OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
  11. ObjectMetadata meta = new ObjectMetadata();
  12. // 指定上傳的內容類型。
  13. meta.setContentType("text/plain");
  14. // 通過AppendObjectRequest設定多個參數。
  15. AppendObjectRequest appendObjectRequest = new AppendObjectRequest("<yourBucketName>", "<yourObjectName>", new ByteArrayInputStream(content1.getBytes()),meta);
  16. // 通過AppendObjectRequest設定單個參數。
  17. // 設定儲存空間名稱。
  18. //appendObjectRequest.setBucketName("<yourBucketName>");
  19. // 設定檔案名稱。
  20. //appendObjectRequest.setKey("<yourObjectName>");
  21. // 設定待追加的內容。有兩種可選類型:InputStream類型和File類型。這裡為InputStream類型。
  22. //appendObjectRequest.setInputStream(new ByteArrayInputStream(content1.getBytes()));
  23. // 設定待追加的內容。有兩種可選類型:InputStream類型和File類型。這裡為File類型。
  24. //appendObjectRequest.setFile(new File("<yourLocalFile>"));
  25. // 指定檔案的元資訊,第一次追加時有效。
  26. //appendObjectRequest.setMetadata(meta);
  27. // 第一次追加。
  28. // 設定檔案的追加位置。
  29. appendObjectRequest.setPosition(0L);
  30. AppendObjectResult appendObjectResult = ossClient.appendObject(appendObjectRequest);
  31. // 檔案的64位CRC值。此值根據ECMA-182標準計算得出。
  32. System.out.println(appendObjectResult.getObjectCRC());
  33. // 第二次追加。
  34. // nextPosition指明下一次請求中應當提供的Position,即檔案當前的長度。
  35. appendObjectRequest.setPosition(appendObjectResult.getNextPosition());
  36. appendObjectRequest.setInputStream(new ByteArrayInputStream(content2.getBytes()));
  37. appendObjectResult = ossClient.appendObject(appendObjectRequest);
  38. // 第三次追加。
  39. appendObjectRequest.setPosition(appendObjectResult.getNextPosition());
  40. appendObjectRequest.setInputStream(new ByteArrayInputStream(content3.getBytes()));
  41. appendObjectResult = ossClient.appendObject(appendObjectRequest);
  42. // 關閉OSSClient。
  43. ossClient.shutdown();

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