huaweicloud-cloudartifact-versiondownload-java:华为云制品仓库文件查询与下载Java示例

管理CloudArtifact制品仓库服务的API场景示例和服务场景示例代码

分支3Tags0
文件最后提交记录最后更新时间
3 年前
3 年前
3 年前
3 年前
3 年前
3 年前
3 年前

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 首次发布

项目介绍

管理CloudArtifact制品仓库服务的API场景示例和服务场景示例代码

定制我的领域