Ух, приятно знать, что я не единственный, кто потерял в пустоте API V2 ...
Я внедряю похожую библиотеку и столкнулся с той же проблемой.Из моего понимания документации есть две загрузки Monolithic : вариант с одним обменом POST
(упомянутый внизу документации) и вариант с двумя обменами POST
+ PUT
(упомянутый вверхняя часть документов).
Я не смог заставить работать метод POST-only.В моем случае я использовал его для загрузки манифеста изображения после блобов слоя и до манифеста реестра.В то время как POST выглядит успешным и возвращает 202, запись в журнал отладки в реестре показывает, что он никогда не реплицируется из места размещения в хранилище данных (как это происходит после частичной загрузки).Последующая попытка загрузить манифест завершается с ошибкой 400 и отладкой журнала «blob unknown to registry».
Однако я смог обойти эту проблему с помощью POST +Метод PUT.
Ключевые разделы в документации для меня были:
Хотя для заголовка Location указан формат URI (/ v2 // blobs / uploads /), клиентыследует рассматривать его как непрозрачный URL и никогда не пытаться его собрать.
и
Монолитная загрузка - это просто фрагментная загрузка с одним фрагментом ...
Следуя этим двум инструкциям, я создал новый заголовок Location (и UUID) с помощью POST, добавил значение дайджеста и завершил загрузку, поместив BLOB-объект в измененное местоположение.
Sideпримечание: просматривая журналы отладки реестра, интерфейс командной строки Docker проверяет наличие больших двоичных объектов до , начиная новую загрузку (и после завершения загрузки также - при условии, что в качестве двойной проверки используется код состоянияе).