Docker Registry V2 API-推送图像-上传PATCH失败,出现404

问题描述

我正在尝试使用Docker Http V2 API在此链接后推送图像; https://docs.docker.com/registry/spec/api/#pushing-an-image;在POST到/ blob / uploads之后,我可以获取“ Location”标头值,但是块/单片上载不起作用-找不到404-即使我设置了必需的标头。

        String url = String.format("https://%s/v2/%s/blobs/uploads/",dockerRegistry,repository);
        Mono<ClientResponse> clientResponse = WebClient.create(url).post().header("Connection","close").exchange();
        ClientResponse clientResponse2 = clientResponse.block();
        HttpHeaders asHttpHeaders = clientResponse2.headers().asHttpHeaders();
        
        String location = asHttpHeaders.get("Location").get(0);
        
        String uploadUrl = ("https://" + dockerRegistry + location);
        
        Mono<ClientResponse> clientResponse3 =
            WebClient.create(uploadUrl).patch().contentLength(bytes.length)
                .header("Content-Range","0-" + Integer.toString(bytes.length - 1))
                .contentType(MediaType.APPLICATION_OCTET_STREAM).header("Connection","close")
                .bodyValue(bytes).exchange()
                .timeout(Duration.ofHours(1));
        ClientResponse clientResponse4 = clientResponse3.block(); // 404 NOT FOUND
        HttpHeaders asHttpHeaders = clientResponse4.headers().asHttpHeaders();
        return asHttpHeaders.get("Location").get(0);

在这里看不到有太多失败的余地,但是我仍然遇到错误。有人可以帮我吗? Bw,我正在尝试在此处连接到Azure容器注册表。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...