追加類型的檔案(Append Object)暫時不支援copyObject操作。
以下代碼用於追加上傳檔案:
// Endpoint以杭州為例,其它Region請按實際情況填寫。
String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
// 阿里雲主帳號AccessKey擁有所有API的存取權限,風險很高。強烈建議您建立並使用RAM帳號進行API訪問或日常運維,請登入 https://ram.console.aliyun.com 建立RAM帳號。
String accessKeyId = "<yourAccessKeyId>";
String accessKeySecret = "<yourAccessKeySecret>";
String content1 = "Hello OSS A \n";
String content2 = "Hello OSS B \n";
String content3 = "Hello OSS C \n";
// 建立OSSClient執行個體。
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
ObjectMetadata meta = new ObjectMetadata();
// 指定上傳的內容類型。
meta.setContentType("text/plain");
// 通過AppendObjectRequest設定多個參數。
AppendObjectRequest appendObjectRequest = new AppendObjectRequest("<yourBucketName>", "<yourObjectName>", new ByteArrayInputStream(content1.getBytes()),meta);
// 通過AppendObjectRequest設定單個參數。
// 設定儲存空間名稱。
//appendObjectRequest.setBucketName("<yourBucketName>");
// 設定檔案名稱。
//appendObjectRequest.setKey("<yourObjectName>");
// 設定待追加的內容。有兩種可選類型:InputStream類型和File類型。這裡為InputStream類型。
//appendObjectRequest.setInputStream(new ByteArrayInputStream(content1.getBytes()));
// 設定待追加的內容。有兩種可選類型:InputStream類型和File類型。這裡為File類型。
//appendObjectRequest.setFile(new File("<yourLocalFile>"));
// 指定檔案的元資訊,第一次追加時有效。
//appendObjectRequest.setMetadata(meta);
// 第一次追加。
// 設定檔案的追加位置。
appendObjectRequest.setPosition(0L);
AppendObjectResult appendObjectResult = ossClient.appendObject(appendObjectRequest);
// 檔案的64位CRC值。此值根據ECMA-182標準計算得出。
System.out.println(appendObjectResult.getObjectCRC());
// 第二次追加。
// nextPosition指明下一次請求中應當提供的Position,即檔案當前的長度。
appendObjectRequest.setPosition(appendObjectResult.getNextPosition());
appendObjectRequest.setInputStream(new ByteArrayInputStream(content2.getBytes()));
appendObjectResult = ossClient.appendObject(appendObjectRequest);
// 第三次追加。
appendObjectRequest.setPosition(appendObjectResult.getNextPosition());
appendObjectRequest.setInputStream(new ByteArrayInputStream(content3.getBytes()));
appendObjectResult = ossClient.appendObject(appendObjectRequest);
// 關閉OSSClient。
ossClient.shutdown();