ocm-uploadhandlers
On this page
Description
An upload handler is used to process resources using the access method
localBlob
transferred into an OCM
repository. They may decide to store the content in some other
storage repository. This may be an additional storage location or it
may replace the storage of the resource as local blob.
If an additional storage location is chosen, the local access method
is kept and the additional location can be registered in the component
descriptor as globalAccess
attribute of the local access
specification.
For example, there is a default upload handler responsible for OCI artifact
blobs, which provides regular OCI artifacts for a local blob, if
the target OCM repository is based on an OCI registry. Hereby, the
referenceName
attribute will be used to calculate a
meaningful OCI repository name based on the repository prefix
of the OCM repository (parallel to component-descriptors
prefix
used to store the component descriptor artifacts).
Handler Registration
Programmatically any kind of handlers can be registered for various
upload conditions. But this feature is available as command-line option, also.
New handlers can be provided by plugins. In general available handlers,
plugin-based or as part of the CLI coding are nameable using an hierarchical
namespace. Those names can be used by a –uploader
option
to register handlers for various conditions for CLI commands like
ocm transfer componentversions or ocm transfer commontransportarchive.
Besides the activation constraints (resource type and media type of the resource blob), it is possible to pass a target configuration controlling the exact behaviour of the handler for selected artifacts.
The following handler names are possible:
ocm/mavenPackage
: uploading maven artifactsThe
ocm/mavenPackage
uploader is able to upload maven artifacts (whole GAV only!) as artifact archive according to the maven artifact spec. If registered the default mime type is: application/x-tgzIt accepts a plain string for the URL or a config with the following field: ‘url’: the URL of the maven repository.
ocm/npmPackage
: uploading npm artifactsThe
ocm/npmPackage
uploader is able to upload npm artifacts as artifact archive according to the npm package spec. If registered the default mime type is: application/x-tgzIt accepts a plain string for the URL or a config with the following field: ‘url’: the URL of the npm repository.
ocm/ociArtifacts
: downloading OCI artifactsThe
ociArtifacts
downloader is able to download OCI artifacts as artifact archive according to the OCI distribution spec. The following artifact media types are supported:application/vnd.oci.image.manifest.v1+tar
application/vnd.oci.image.manifest.v1+tar+gzip
application/vnd.oci.image.index.v1+tar
application/vnd.oci.image.index.v1+tar+gzip
application/vnd.docker.distribution.manifest.v2+tar
application/vnd.docker.distribution.manifest.v2+tar+gzip
application/vnd.docker.distribution.manifest.list.v2+tar
application/vnd.docker.distribution.manifest.list.v2+tar+gzip
By default, it is registered for these mimetypes.
It accepts a config with the following fields:
namespacePrefix
: a namespace prefix used for the uploaded artifactsociRef
: an OCI repository referencerepository
: an OCI repository specification for the target OCI registry
Alternatively, a single string value can be given representing an OCI repository reference.
plugin
: [downloaders provided by plugins]sub namespace of the form
<plugin name>/<handler>
See ocm ocm-uploadhandlers for further details on using upload handlers.