Docker Registry V2 API - отправка изображения - загрузка (PATCH) завершается с ошибкой 404

Я пытаюсь использовать Docker Http V2 API, чтобы отправить изображение по этой ссылке; https://docs.docker.com/registry/spec/api/;Я мог получить значение заголовка "Location" после POSTing в /blob/uploads, но загрузка фрагментов / монолитных файлов не работает - получение 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);

Я не вижу здесь много места для ошибки, но я все равно получаю сообщение об ошибке. Кто-нибудь может мне здесь помочь? Чёрт, я пытаюсь подключиться к Реестру контейнеров Azure здесь.

0 ответов

Другие вопросы по тегам