管理CloudArtifact制品仓库服务的API场景示例和服务场景示例代码
1.版本说明
本示例基于华为云SDK V3.0+版本开发
2.功能介绍
华为云提供了制品仓库SDK,您可以直接集成服务端SDK来调用制品仓库SDK的相关API,从而实现对制品仓库服务的快速操作。 该示例展示了如何通过Java版SDK查询项目下文件列表,获取文件下载链接并下载文件。
3.前置条件
- 1.开发者已注册华为云账号。
- 2.已在制品仓库服务上传文件。
- 3.开发者在使用前需先获取账号的AK、SK。
4.安装SDK
您可以通过Maven方式获取和安装SDK,您只需要在Java项目的pom.xml文件中加入相应的依赖项即可。 CloudArtifact的DSK版本需高于3.0.0,具体的SDK版本号请参见SDK开发中心。
<dependencies>
<dependency>
<groupId>com.huaweicloud.sdk</groupId>
<artifactId>huaweicloud-sdk-codeartsartifact</artifactId>
<version>3.1.25</version>
</dependency>
</dependencies>
5.文件下载说明
查询文件版本
package com.huawei.demo;
import com.huaweicloud.sdk.codeartsartifact.v2.CodeArtsArtifactClient;
import com.huaweicloud.sdk.codeartsartifact.v2.model.ReleaseFileVersionDo;
import com.huaweicloud.sdk.codeartsartifact.v2.model.ShowProjectReleaseFilesRequest;
import com.huaweicloud.sdk.codeartsartifact.v2.model.ShowProjectReleaseFilesResponse;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.core.http.HttpConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.List;
public class ShowProjectReleaseFilesDemo {
private static final Logger LOGGER = LoggerFactory.getLogger(ShowProjectReleaseFilesDemo.class.getName());
public static void main(String[] args) {
HttpConfig config = HttpConfig.getDefaultHttpConfig().withIgnoreSSLVerification(true);
ICredential auth = new BasicCredentials().withAk("<YOUR AK>").withSk("<YOUR SK>")
.withProjectId("<YOUR REGION PROJECT ID>");
CodeArtsArtifactClient client = CodeArtsArtifactClient.newBuilder().withCredential(auth)
.withEndpoint("<YOUR URL>").withHttpConfig(config).build();
ShowProjectReleaseFilesRequest request = new ShowProjectReleaseFilesRequest();
request.setProjectId("<YOUR FILE PROJECT ID>");
request.setFileName("<YOUR FILE NAME>");
request.setOffset(0);
request.setLimit(10);
try {
// 请求查询文件信息
ShowProjectReleaseFilesResponse response = client.showProjectReleaseFiles(request);
List<ReleaseFileVersionDo> releaseFileVersionDoList = response.getResult().getData();
for (int i = 0; i < releaseFileVersionDoList.size(); i++) {
String filePath = releaseFileVersionDoList.get(i).getPath();
String version = releaseFileVersionDoList.get(i).getVersion();
String downloadUrl = releaseFileVersionDoList.get(i).getDownloadUrl();
// 获取文件信息
LOGGER.info("FilePath:{}, Version:{}, DownloadUrl:{}", filePath, version, downloadUrl);
}
} catch (ConnectionException e) {
LOGGER.error(e.getMessage());
} catch (RequestTimeoutException e) {
LOGGER.error(e.getMessage());
} catch (ServiceResponseException e) {
LOGGER.error(e.getMessage());
LOGGER.error(String.valueOf(e.getHttpStatusCode()));
LOGGER.error(e.getErrorCode());
LOGGER.error(e.getErrorMsg());
}
}
}

根据查询到的文件下载链接下载文件
通过编译构建任务下载版本文件

6.修订记录
| 发布日期 | 版本号 | 修订说明 |
|---|---|---|
| 2022.10.30 | 1.1 | 首次发布 |