請您謹慎使用刪除操作,檔案一旦刪除將無法恢複。
刪除單個檔案
以下代碼用於刪除單個檔案:
// 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 bucketName = "<yourBucketName>";
String objectName = "<yourObjectName>";
// 建立OSSClient執行個體。
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
// 刪除檔案。
ossClient.deleteObject(bucketName, objectName);
// 關閉OSSClient。
ossClient.shutdown();
刪除多個檔案
每次最多刪除1000個檔案。有兩種返回模式:詳細(verbose)模式和簡單(quiet)模式:
- 詳細模式:返回刪除成功的檔案清單。預設為詳細模式。
- 簡單模式:返回刪除失敗的檔案清單。
DeleteObjectsRequest的參數如下:
參數 | 描述 | 方法 |
---|---|---|
Keys | 需要刪除的檔案。 | setKeys(List<String>) |
quiet | 返回模式。true表示簡單模式,false表示詳細模式。預設為詳細模式。 | setQuiet(boolean) |
encodingType | 指定對返回的檔案名稱進行編碼,目前僅支援url。 | setEncodingType(String) |
DeleteObjectsResult的參數如下:
參數 | 描述 | 方法 |
---|---|---|
deletedObjects | 刪除結果。詳細模式下為刪除成功的檔案清單,簡單模式下為刪除失敗的檔案清單。 | List<String> getDeletedObjects() |
encodingType | deletedObjects中檔案名稱的編碼,為空表示沒有編碼。 | getEncodingType() |
以下代碼用於大量刪除檔案:
// 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 bucketName = "<yourBucketName>";
// 建立OSSClient執行個體。
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
// 刪除檔案。
List<String> keys = new ArrayList<String>();
keys.add("key0");
keys.add("key1");
keys.add("key2");
DeleteObjectsResult deleteObjectsResult = ossClient.deleteObjects(new DeleteObjectsRequest(bucketName).withKeys(keys));
List<String> deletedObjects = deleteObjectsResult.getDeletedObjects();
// 關閉OSSClient。
ossClient.shutdown();
大量刪除檔案的完整代碼請參見GitHub。