OSS服務器批量下載文件

<!--oss-->
		<dependency>
			<groupId>com.aliyun.oss</groupId>
			<artifactId>aliyun-sdk-oss</artifactId>
			<version>2.8.3</version>
		</dependency>

路徑爲oss://TESTXXX/CR/Z9002/Z9002_20190418075000.jpg

// Endpoint以北京爲例,其它Region請按實際情況填寫。
		String endpoint = "http://oss-cn-beijing.aliyuncs.com";
// 阿里雲主賬號AccessKey擁有所有API的訪問權限,風險很高。強烈建議您創建並使用RAM賬號進行API訪問或日常運維,請登錄 https://ram.console.aliyun.com 創建RAM賬號。
		String accessKeyId = "XXXX";
		String accessKeySecret = "XXX";
		String bucketName = "TESTXXX";
//		String objectName = "CR/Z9002/Z9002_20190418075000.jpg";

// 創建OSSClient實例。
		OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
// 構造ListObjectsRequest請求
		ListObjectsRequest listObjectsRequest = new ListObjectsRequest(bucketName);
		//Delimiter 設置爲 “/” 時,羅列該文件夾下的文件
		listObjectsRequest.setDelimiter("/");
		//Prefix 設爲某個文件夾名,羅列以此 Prefix 開頭的文件
		listObjectsRequest.setPrefix("CR/");

		ObjectListing listing = ossClient.listObjects(listObjectsRequest);

		for (String commonPrefix : listing.getCommonPrefixes()) {
			listObjectsRequest.setPrefix(commonPrefix);

			ObjectListing listing2 = ossClient.listObjects(listObjectsRequest);
		for (OSSObjectSummary objectSummary : listing2.getObjectSummaries()) {
			//key:CR/Z9002/1.jpg等,即:Bucket中存儲文件的路徑
			String key = objectSummary.getKey();
			//判斷文件所在本地路徑是否存在,若無,新建目錄
			File file = new File("D:\\test\\" + key);
			File fileParent = file.getParentFile();
			if (!fileParent.exists()) {
				fileParent.mkdirs();
			}
			//下載object到文件
			ossClient.getObject(new GetObjectRequest(bucketName, key), file);
		}
		}
		System.out.println("下載完成");
		// 關閉client
		ossClient.shutdown();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章