Version: SWORD 3.0
Last modified: 2021-09-01 09:54
This document provides details of the specific protocol requirements for every operation that SWORD 3.0 supports.
See also: SWORD 3.0 Specification from which this document of denormalised protocol operations is derived.
Each section describes the operation you can perform, and then the technical details of performing it, as follows:
Request from the server a list of the Service-URLs that the client can deposit to. A Service-URL allows the server to support multiple different deposit conditions - each URL may have its own set of rules/workflows behind it; for example, Service-URLs may be subject-specific, organisational-specific, or process-specific. It is up to the client to determine which is the suitable URL for its deposit, based on the information provided by the server. The list of Service-URLs may vary depending on the authentication credentials supplied by the client.
This request can be made against a root Service-URL, which will describe the capabilities of the entire server, for information about the full list of Service-URLs, or can be made against an individual Service-URL for information just about that service.
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Server Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestResponse Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST only list Service-URLs in the Service Document for which a deposit request would be permittedError Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)Create a new Object on the server with no metadata or binary content. That is, create a container into which you
can subsequently send data. It is RECOMMENDED that when using this route you specify In-Progress: true.
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Content-Disposition header, with the appropriate value for the requestContent-Length header with value 0Slug headerIn-Progress headerServer Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestSlug header is provided, MAY use this as the identifier for the newly created Object.In-Progress header is provided, MUST assume that it is falseIn-Progress is false, SHOULD expect further updates to the item, and not progress it through any ingest workflows yet.Response Requirements
ETag header if implementing concurrency controlLocation header, containing the Object-URLLocation header immediately (irrespective of whether this is a 201 or 202 response)201 if the item was created immediately, a 202 if the item was queued for import, or raise an error.Error Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)Create a new Object on the server, sending only Metadata content (i.e. no Binary File content, and no By-Reference Files).
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Content-Disposition header, with the appropriate value for the requestDigest headerContent-LengthContent-Type headerMetadata-Format headerSlug headerIn-Progress headerServer Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestDigest headerContent-Length if this is providedMetadata-Format header is provided, MUST assume this is the standard SWORD format: http://purl.org/net/sword/3.0/types/MetadataSlug header is provided, MAY use this as the identifier for the newly created Object.In-Progress header is provided, MUST assume that it is falseIn-Progress is false, SHOULD expect further updates to the item, and not progress it through any ingest workflows yet.Response Requirements
ETag header if implementing concurrency controlLocation header, containing the Object-URLLocation header immediately (irrespective of whether this is a 201 or 202 response)201 if the item was created immediately, a 202 if the item was queued for import, or raise an error.Error Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)412 (DigestMismatch). Note that servers MAY NOT check digests in real-time.400 (ContentMalformed)Content-Type header contains a format that the server cannot accept, MUST respond with 415 (ContentTypeNotAcceptable)413 (MaxUploadSizeExceeded)Metadata-Format header indicates a format the server does not support, MUST return 415 (MetadataFormatNotAcceptable)Metadata-Format header does not match the format found in the body content, MAY return 415 (FormatHeaderMismatch)The Content-Disposition in this case would be:
Content-Disposition: attachment; metadata=true
Create a new Object on the server, sending on By-Reference Files (i.e. no Binary Files and no Metadata)
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Content-Disposition header, with the appropriate value for the requestDigest headerContent-LengthContent-Type headerSlug headerIn-Progress headerServer Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestDigest headerContent-Length if this is providedSlug header is provided, MAY use this as the identifier for the newly created Object.In-Progress header is provided, MUST assume that it is falseIn-Progress is false, SHOULD expect further updates to the item, and not progress it through any ingest workflows yet.Response Requirements
ETag header if implementing concurrency controlLocation header, containing the Object-URLLocation header immediately (irrespective of whether this is a 201 or 202 response)201 if the item was created immediately, a 202 if the item was queued for import, or raise an error.Error Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)412 (DigestMismatch). Note that servers MAY NOT check digests in real-time.400 (ContentMalformed)Content-Type header contains a format that the server cannot accept, MUST respond with 415 (ContentTypeNotAcceptable)413 (MaxUploadSizeExceeded)400 (ByReferenceFileSizeExceeded)412 (ByReferenceNotAllowed)The Content-Disposition in this case would be:
Content-Disposition: attachment; by-reference=true
Create a new Object on the server, sending both Metadata content and By-Reference Files (i.e. no Binary File content)
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Content-Disposition header, with the appropriate value for the requestDigest headerContent-LengthContent-Type headerMetadata-Format headerSlug headerIn-Progress headerServer Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestDigest headerContent-Length if this is providedMetadata-Format header is provided, MUST assume this is the standard SWORD format: http://purl.org/net/sword/3.0/types/MetadataSlug header is provided, MAY use this as the identifier for the newly created Object.In-Progress header is provided, MUST assume that it is falseIn-Progress is false, SHOULD expect further updates to the item, and not progress it through any ingest workflows yet.Response Requirements
ETag header if implementing concurrency controlLocation header, containing the Object-URLLocation header immediately (irrespective of whether this is a 201 or 202 response)201 if the item was created immediately, a 202 if the item was queued for import, or raise an error.Error Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)412 (DigestMismatch). Note that servers MAY NOT check digests in real-time.400 (ContentMalformed)Content-Type header contains a format that the server cannot accept, MUST respond with 415 (ContentTypeNotAcceptable)413 (MaxUploadSizeExceeded)400 (ByReferenceFileSizeExceeded)412 (ByReferenceNotAllowed)Metadata-Format header does not match the format found in the body content, MAY return 415 (FormatHeaderMismatch)Metadata-Format header indicates a format the server does not support, MUST return 415 (MetadataFormatNotAcceptable)The Content-Disposition in this case would be:
Content-Disposition: attachment; metadata=true; by-reference=true
Create a new Object on the server, sending a single Binary File. The Binary File is an opaque bitstream which the server should not attempt to unpack.
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Content-Disposition header, with the appropriate value for the requestDigest headerContent-LengthContent-Type headerPackaging header, and if so MUST be the Binary format identifierSlug headerIn-Progress headerServer Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestDigest headerContent-Length if this is providedoriginalDepositSlug header is provided, MAY use this as the identifier for the newly created Object.In-Progress header is provided, MUST assume that it is falseIn-Progress is false, SHOULD expect further updates to the item, and not progress it through any ingest workflows yet.Response Requirements
ETag header if implementing concurrency controlLocation header, containing the Object-URLLocation header immediately (irrespective of whether this is a 201 or 202 response)201 if the item was created immediately, a 202 if the item was queued for import, or raise an error.Error Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)412 (DigestMismatch). Note that servers MAY NOT check digests in real-time.400 (ContentMalformed)Content-Type header contains a format that the server cannot accept, MUST respond with 415 (ContentTypeNotAcceptable)413 (MaxUploadSizeExceeded)The Content-Disposition in this case would be:
Content-Disposition: attachment; filename=[filename]
Create a new Object on the server, sending a single Binary File. The Binary File itself is specified as Packaged Content, which the server may understand how to unpack.
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Content-Disposition header, with the appropriate value for the requestDigest headerContent-LengthContent-Type headerPackaging headerSlug headerIn-Progress headerServer Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestDigest headerContent-Length if this is providedoriginalDepositderivedResources from it.Slug header is provided, MAY use this as the identifier for the newly created Object.In-Progress header is provided, MUST assume that it is falseIn-Progress is false, SHOULD expect further updates to the item, and not progress it through any ingest workflows yet.Response Requirements
ETag header if implementing concurrency controlLocation header, containing the Object-URLLocation header immediately (irrespective of whether this is a 201 or 202 response)201 if the item was created immediately, a 202 if the item was queued for import, or raise an error.Error Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)412 (DigestMismatch). Note that servers MAY NOT check digests in real-time.400 (ContentMalformed)Content-Type header contains a format that the server cannot accept, MUST respond with 415 (ContentTypeNotAcceptable)413 (MaxUploadSizeExceeded)Packaging header, MUST respond with a 415 (PackagingFormatNotAcceptable)Packaging header does not match the format found in the body content, SHOULD return 415 (FormatHeaderMismatch). Note that the server may not be able to inspect the package during the request-response, so MAY NOT return this response.The Content-Disposition in this case would be:
Content-Disposition: attachment; filename=[filename]
First create a Temporary-URL to which to upload the file segments:
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Content-Disposition header, with the appropriate value for the requestContent-Length header with value 0Server Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestResponse Requirements
201 to indicate that the Segmented Upload has been initialised, or raise an error.Location header containing the Temporary-URL where the client can upload file segmentsError Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)400 (MaxAssembledSizeExceeded)400 (InvalidSegmentSize)400 (SegmentLimitExceeded)The Content-Disposition in this case would be:
Content-Disposition: segment-init; size=[bytes]; digest=[digest]; segment_count=[n]; segment_size=[bytes]
Then upload all the file segments as per Upload a File Segment.
Then carry out a By-Reference deposit using the Temporary-URL as per Creating Objects with only By-Reference Files
For an Object where you have an Object-URL, you may request information about the current state of that resource, and receive the Status document in response.
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Server Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestResponse Requirements
ETag header if implementing concurrency controlError Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)Retrieve the descriptive Metadata document associated with the Object in the standard SWORD format. This operation is done against the Metadata-URL, which is the resource URL representing the Object’s metadata. When retrieved, this resource is serialised only as the standard SWORD format, content negotiation is not supported. If you want to retrieve the metadata for the Object in other formats, you can see a list of the available formats in the Status document, and the individual expressions of the metadata can then be retrieved directly by the appropriate URL.
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Server Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestResponse Requirements
ETag header if implementing concurrency controlError Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)Retrieve a single File from the Object; files available for retrieval are listed in the Status document. These single files could be actual individual files that make up the object, or:
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Server Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestResponse Requirements
ETag header if implementing concurrency controlError Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)To retrieve the full Object packaged according to some Packaging format, the Status document contains all the files that the Object contains, and identifies those which allow you to retrieve the entire objects as a package. Use the Status document to obtain the URL for the format you wish to retrieve, and make a GET to that URL. See the section "Retrieving a Binary File from an Object" for the specification of this operation.
Metadata and Files may be added to existing Objects through a variety of mechanisms, which are listed in this section.
Append new metadata to an Object. Metadata provided in this way should be considered to extend existing metadata, such that any new metadata fields are added to the Object, and any existing metadata fields are kept as-is.
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Content-Disposition header, with the appropriate value for the requestDigest headerContent-LengthContent-Type headerMetadata-Format headerIf-Match header, if the server implements concurrency controlIn-Progress headerServer Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestDigest headerContent-Length if this is providedMetadata-Format header is provided, MUST assume this is the standard SWORD format: http://purl.org/net/sword/3.0/types/MetadataIf-Match header does not match the current ETag of the resourceIn-Progress header is provided, MUST assume that it is falseResponse Requirements
ETag header if implementing concurrency controlETag header if implementing concurrency control200 if the request was accepted immediately, a 202 if the request was queued for processing, or raise an error.Error Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)412 (DigestMismatch). Note that servers MAY NOT check digests in real-time.400 (ContentMalformed)Content-Type header contains a format that the server cannot accept, MUST respond with 415 (ContentTypeNotAcceptable)413 (MaxUploadSizeExceeded)Metadata-Format header indicates a format the server does not support, MUST return 415 (MetadataFormatNotAcceptable)Metadata-Format header does not match the format found in the body content, MAY return 415 (FormatHeaderMismatch)If-Match header does not match the current ETag, MUST respond with 412 (ETagNotMatched)If-Match header is provided, MUST respond with 412 (ETagRequired)The Content-Disposition in this case would be:
Content-Disposition: attachment; metadata=true
Append new files to an Object by sending one or more By-Reference files.
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Content-Disposition header, with the appropriate value for the requestDigest headerContent-LengthContent-Type headerIf-Match header, if the server implements concurrency controlIn-Progress headerServer Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestDigest headerContent-Length if this is providedIf-Match header does not match the current ETag of the resourceIn-Progress header is provided, MUST assume that it is falseoriginalDepositsResponse Requirements
ETag header if implementing concurrency controlETag header if implementing concurrency control200 if the request was accepted immediately, a 202 if the request was queued for processing, or raise an error.Error Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)412 (DigestMismatch). Note that servers MAY NOT check digests in real-time.400 (ContentMalformed)Content-Type header contains a format that the server cannot accept, MUST respond with 415 (ContentTypeNotAcceptable)413 (MaxUploadSizeExceeded)400 (ByReferenceFileSizeExceeded)412 (ByReferenceNotAllowed)If-Match header does not match the current ETag, MUST respond with 412 (ETagNotMatched)If-Match header is provided, MUST respond with 412 (ETagRequired)The Content-Disposition in this case would be:
Content-Disposition: attachment; by-reference=true
Append new files and append/overlay Metadata at the same time.
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Content-Disposition header, with the appropriate value for the requestDigest headerContent-LengthContent-Type headerMetadata-Format headerIf-Match header, if the server implements concurrency controlIn-Progress headerServer Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestDigest headerContent-Length if this is providedMetadata-Format header is provided, MUST assume this is the standard SWORD format: http://purl.org/net/sword/3.0/types/MetadataIf-Match header does not match the current ETag of the resourceIn-Progress header is provided, MUST assume that it is falseoriginalDeposits, and MUST add the Metadata to the item, and only treat this as an extension to existing Metadata. The server MUST NOT overwrite or otherwise remove existing Metadata.Response Requirements
ETag header if implementing concurrency controlETag header if implementing concurrency control200 if the request was accepted immediately, a 202 if the request was queued for processing, or raise an error.Error Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)412 (DigestMismatch). Note that servers MAY NOT check digests in real-time.400 (ContentMalformed)Content-Type header contains a format that the server cannot accept, MUST respond with 415 (ContentTypeNotAcceptable)413 (MaxUploadSizeExceeded)400 (ByReferenceFileSizeExceeded)412 (ByReferenceNotAllowed)Metadata-Format header does not match the format found in the body content, MAY return 415 (FormatHeaderMismatch)Metadata-Format header indicates a format the server does not support, MUST return 415 (MetadataFormatNotAcceptable)If-Match header does not match the current ETag, MUST respond with 412 (ETagNotMatched)If-Match header is provided, MUST respond with 412 (ETagRequired)The Content-Disposition in this case would be:
Content-Disposition: attachment; metadata=true; by-reference=true
Append new File to the Object, in addition to existing content which it already contains. This File will be added as-is to the Object, without the server unpacking it as it would Packaged Content.
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Content-Disposition header, with the appropriate value for the requestDigest headerContent-LengthContent-Type headerPackaging header, and if so MUST be the Binary format identifierIf-Match header, if the server implements concurrency controlIn-Progress headerServer Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestDigest headerContent-Length if this is providedoriginalDepositIf-Match header does not match the current ETag of the resourceIn-Progress header is provided, MUST assume that it is falseResponse Requirements
ETag header if implementing concurrency controlETag header if implementing concurrency control200 if the request was accepted immediately, a 202 if the request was queued for processing, or raise an error.Location header, containing the File-URL of the Original Deposit FileError Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)412 (DigestMismatch). Note that servers MAY NOT check digests in real-time.400 (ContentMalformed)Content-Type header contains a format that the server cannot accept, MUST respond with 415 (ContentTypeNotAcceptable)413 (MaxUploadSizeExceeded)If-Match header does not match the current ETag, MUST respond with 412 (ETagNotMatched)If-Match header is provided, MUST respond with 412 (ETagRequired)The Content-Disposition in this case would be:
Content-Disposition: attachment; filename=[filename]
Append new Files (via Packaged Content) to the Object, in addition to existing content which it already contains. The package may be unpacked by the server and new file resources added. Metadata may also be appended/selectively updated, if the package contains actionable metadata.
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Content-Disposition header, with the appropriate value for the requestDigest headerContent-LengthContent-Type headerPackaging headerIf-Match header, if the server implements concurrency controlIn-Progress headerServer Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestDigest headerContent-Length if this is providedoriginalDepositderivedResources from it.If-Match header does not match the current ETag of the resourceIn-Progress header is provided, MUST assume that it is falseResponse Requirements
ETag header if implementing concurrency controlETag header if implementing concurrency control200 if the request was accepted immediately, a 202 if the request was queued for processing, or raise an error.Location header, containing the File-URL of the Original Deposit FileError Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)412 (DigestMismatch). Note that servers MAY NOT check digests in real-time.400 (ContentMalformed)Content-Type header contains a format that the server cannot accept, MUST respond with 415 (ContentTypeNotAcceptable)413 (MaxUploadSizeExceeded)Packaging header, MUST respond with a 415 (PackagingFormatNotAcceptable)Packaging header does not match the format found in the body content, SHOULD return 415 (FormatHeaderMismatch). Note that the server may not be able to inspect the package during the request-response, so MAY NOT return this response.If-Match header does not match the current ETag, MUST respond with 412 (ETagNotMatched)If-Match header is provided, MUST respond with 412 (ETagRequired)The Content-Disposition in this case would be:
Content-Disposition: attachment; filename=[filename]
Append a single Binary File to an Object which will be delivered via a Segmented File Upload.
First create a Temporary-URL to which to upload the file segments:
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Content-Disposition header, with the appropriate value for the requestContent-Length header with value 0Server Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestResponse Requirements
201 to indicate that the Segmented Upload has been initialised, or raise an error.Location header containing the Temporary-URL where the client can upload file segmentsError Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)400 (MaxAssembledSizeExceeded)400 (InvalidSegmentSize)400 (SegmentLimitExceeded)The Content-Disposition in this case would be:
Content-Disposition: segment-init; size=[bytes]; digest=[digest]; segment_count=[n]; segment_size=[bytes]
Then upload all the file segments as per Upload a File Segment.
Then carry out a By-Reference deposit using the Temporary-URL as per Appending By-Reference Files to an Object
As Append of Binary Files to an Object via Segmented File Upload.
Metadata and Files may be replaced in existing Objects through a variety of mechanisms, which are listed in this section.
Replace in its entirety the Metadata associated with an Object.
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Content-Disposition header, with the appropriate value for the requestDigest headerContent-LengthContent-Type headerMetadata-Format headerIf-Match header, if the server implements concurrency controlServer Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestDigest headerContent-Length if this is providedMetadata-Format header is provided, MUST assume this is the standard SWORD format: http://purl.org/net/sword/3.0/types/MetadataIf-Match header does not match the current ETag of the resourceResponse Requirements
ETag header if implementing concurrency control204 if the replacement was deposited immediately, a 202 if the replacement was queued for import, or raise an error.Error Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)412 (DigestMismatch). Note that servers MAY NOT check digests in real-time.400 (ContentMalformed)Content-Type header contains a format that the server cannot accept, MUST respond with 415 (ContentTypeNotAcceptable)413 (MaxUploadSizeExceeded)Metadata-Format header indicates a format the server does not support, MUST return 415 (MetadataFormatNotAcceptable)Metadata-Format header does not match the format found in the body content, MAY return 415 (FormatHeaderMismatch)If-Match header does not match the current ETag, MUST respond with 412 (ETagNotMatched)If-Match header is provided, MUST respond with 412 (ETagRequired)The Content-Disposition in this case would be:
Content-Disposition: attachment; metadata=true
Replace an existing file in the Object with a new file. The server may keep the old version of the file available.
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Content-Disposition header, with the appropriate value for the requestDigest headerContent-LengthContent-Type headerPackaging header, and if so MUST be the Binary format identifierIf-Match header, if the server implements concurrency controlServer Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestDigest headerContent-Length if this is providedoriginalDepositIf-Match header does not match the current ETag of the resourceoriginalDepositResponse Requirements
ETag header if implementing concurrency control204 if the replacement was deposited immediately, a 202 if the replacement was queued for import, or raise an error.Error Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)412 (DigestMismatch). Note that servers MAY NOT check digests in real-time.400 (ContentMalformed)Content-Type header contains a format that the server cannot accept, MUST respond with 415 (ContentTypeNotAcceptable)413 (MaxUploadSizeExceeded)If-Match header does not match the current ETag, MUST respond with 412 (ETagNotMatched)If-Match header is provided, MUST respond with 412 (ETagRequired)The Content-Disposition in this case would be:
Content-Disposition: attachment; filename=[filename]
Replace an existing file in the Object with a new file which the server retrieves as a By-Reference File. The server may keep the old version of the file available.
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Content-Disposition header, with the appropriate value for the requestDigest headerContent-LengthContent-Type headerIf-Match header, if the server implements concurrency controlServer Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestDigest headerContent-Length if this is providedIf-Match header does not match the current ETag of the resourceoriginalDepositResponse Requirements
ETag header if implementing concurrency control204 if the replacement was deposited immediately, a 202 if the replacement was queued for import, or raise an error.Error Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)412 (DigestMismatch). Note that servers MAY NOT check digests in real-time.400 (ContentMalformed)Content-Type header contains a format that the server cannot accept, MUST respond with 415 (ContentTypeNotAcceptable)413 (MaxUploadSizeExceeded)400 (ByReferenceFileSizeExceeded)412 (ByReferenceNotAllowed)400 (BadRequest)If-Match header does not match the current ETag, MUST respond with 412 (ETagNotMatched)If-Match header is provided, MUST respond with 412 (ETagRequired)The Content-Disposition in this case would be:
Content-Disposition: attachment; by-reference=true
Replace an existing file in the Object with a new file, which the client will send in segments.
First create a Temporary-URL to which to upload the file segments:
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Content-Disposition header, with the appropriate value for the requestContent-Length header with value 0Server Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestResponse Requirements
201 to indicate that the Segmented Upload has been initialised, or raise an error.Location header containing the Temporary-URL where the client can upload file segmentsError Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)400 (MaxAssembledSizeExceeded)400 (InvalidSegmentSize)400 (SegmentLimitExceeded)The Content-Disposition in this case would be:
Content-Disposition: segment-init; size=[bytes]; digest=[digest]; segment_count=[n]; segment_size=[bytes]
Then upload all the file segments as per Upload a File Segment.
Then carry out a By-Reference deposit using the Temporary-URL as per Replacing a single File in an Object with a By-Reference File
Replace all the files in the FileSet of an Object with one or more By-Reference Files. All previously existing files will be removed, and new ones will replace them. The server may or may not keep old versions of the content available, at its discretion.
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Content-Disposition header, with the appropriate value for the requestDigest headerContent-LengthContent-Type headerIf-Match header, if the server implements concurrency controlServer Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestDigest headerContent-Length if this is providedIf-Match header does not match the current ETag of the resourceoriginalDepositsResponse Requirements
ETag header if implementing concurrency control204 if the replacement was deposited immediately, a 202 if the replacement was queued for import, or raise an error.Error Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)412 (DigestMismatch). Note that servers MAY NOT check digests in real-time.400 (ContentMalformed)Content-Type header contains a format that the server cannot accept, MUST respond with 415 (ContentTypeNotAcceptable)413 (MaxUploadSizeExceeded)400 (ByReferenceFileSizeExceeded)412 (ByReferenceNotAllowed)If-Match header does not match the current ETag, MUST respond with 412 (ETagNotMatched)If-Match header is provided, MUST respond with 412 (ETagRequired)The Content-Disposition in this case would be:
Content-Disposition: attachment; by-reference=true
Replace in its entirety the FileSet of the Object (i.e. not the Metadata), with a single Binary File. All previously existing files will be removed, and the new one will replace them. The server may or may not keep old versions of the content available, at its discretion.
Note that we can only send a single Binary File to replace the FileSet, we cannot send a package, as a package implies the presence of metadata which the FileSet-URL is not suitable to handle.
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Content-Disposition header, with the appropriate value for the requestDigest headerContent-LengthContent-Type headerPackaging header, and if so MUST be the Binary format identifierIf-Match header, if the server implements concurrency controlServer Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestDigest headerContent-Length if this is providedoriginalDepositIf-Match header does not match the current ETag of the resourceoriginalDepositResponse Requirements
ETag header if implementing concurrency control204 if the replacement was deposited immediately, a 202 if the replacement was queued for import, or raise an error.Error Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)412 (DigestMismatch). Note that servers MAY NOT check digests in real-time.400 (ContentMalformed)Content-Type header contains a format that the server cannot accept, MUST respond with 415 (ContentTypeNotAcceptable)413 (MaxUploadSizeExceeded)If-Match header does not match the current ETag, MUST respond with 412 (ETagNotMatched)If-Match header is provided, MUST respond with 412 (ETagRequired)The Content-Disposition in this case would be:
Content-Disposition: attachment; filename=[filename]
Replace in its entirity the FileSet of the Object (i.e. not the Metadata), with a single Binary File, that is provided via Segmented File Upload. All previously existing files will be removed, and the new one will replace them. The server may or may not keep old versions of the content available, at its discretion.
First create a Temporary-URL to which to upload the file segments:
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Content-Disposition header, with the appropriate value for the requestContent-Length header with value 0Server Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestResponse Requirements
201 to indicate that the Segmented Upload has been initialised, or raise an error.Location header containing the Temporary-URL where the client can upload file segmentsError Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)400 (MaxAssembledSizeExceeded)400 (InvalidSegmentSize)400 (SegmentLimitExceeded)The Content-Disposition in this case would be:
Content-Disposition: segment-init; size=[bytes]; digest=[digest]; segment_count=[n]; segment_size=[bytes]
Then upload all the file segments as per Upload a File Segment.
Then carry out a By-Reference deposit using the Temporary-URL as per Replacing the FileSet of an Object with By-Reference Files
Replace the entire Object, removing all previous files and metadata, and replace it with just the supplied Metadata. The server may or may not keep old versions of the content available, at its discretion.
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Content-Disposition header, with the appropriate value for the requestDigest headerContent-LengthContent-Type headerMetadata-Format headerIf-Match header, if the server implements concurrency controlIn-Progress headerServer Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestDigest headerContent-Length if this is providedMetadata-Format header is provided, MUST assume this is the standard SWORD format: http://purl.org/net/sword/3.0/types/MetadataIf-Match header does not match the current ETag of the resourceIn-Progress header is provided, MUST assume that it is falseResponse Requirements
ETag header if implementing concurrency controlETag header if implementing concurrency control200 if the request was accepted immediately, a 202 if the request was queued for processing, or raise an error.Error Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)412 (DigestMismatch). Note that servers MAY NOT check digests in real-time.400 (ContentMalformed)Content-Type header contains a format that the server cannot accept, MUST respond with 415 (ContentTypeNotAcceptable)413 (MaxUploadSizeExceeded)Metadata-Format header indicates a format the server does not support, MUST return 415 (MetadataFormatNotAcceptable)Metadata-Format header does not match the format found in the body content, MAY return 415 (FormatHeaderMismatch)If-Match header does not match the current ETag, MUST respond with 412 (ETagNotMatched)If-Match header is provided, MUST respond with 412 (ETagRequired)The Content-Disposition in this case would be:
Content-Disposition: attachment; metadata=true
Replace the entire Object, removing all previous files and metadata, and replace it with one or more files supplied via By-Reference upload. The server may or may not keep old versions of the content available, at its discretion.
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Content-Disposition header, with the appropriate value for the requestDigest headerContent-LengthContent-Type headerIf-Match header, if the server implements concurrency controlIn-Progress headerServer Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestDigest headerContent-Length if this is providedIf-Match header does not match the current ETag of the resourceIn-Progress header is provided, MUST assume that it is falseoriginalDeposits. The server MUST also remove all Metadata, so the Metadata Resource contains no fields.Response Requirements
ETag header if implementing concurrency controlETag header if implementing concurrency control200 if the request was accepted immediately, a 202 if the request was queued for processing, or raise an error.Error Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)412 (DigestMismatch). Note that servers MAY NOT check digests in real-time.400 (ContentMalformed)Content-Type header contains a format that the server cannot accept, MUST respond with 415 (ContentTypeNotAcceptable)413 (MaxUploadSizeExceeded)400 (ByReferenceFileSizeExceeded)412 (ByReferenceNotAllowed)If-Match header does not match the current ETag, MUST respond with 412 (ETagNotMatched)If-Match header is provided, MUST respond with 412 (ETagRequired)The Content-Disposition in this case would be:
Content-Disposition: attachment; by-reference=true
Replace the entire Object, removing all previous files and metadata, and replace it with new Metadata and one or more files supplied via By-Reference upload. The server may or may not keep old versions of the content available, at its discretion.
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Content-Disposition header, with the appropriate value for the requestDigest headerContent-LengthContent-Type headerMetadata-Format headerIf-Match header, if the server implements concurrency controlIn-Progress headerServer Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestDigest headerContent-Length if this is providedMetadata-Format header is provided, MUST assume this is the standard SWORD format: http://purl.org/net/sword/3.0/types/MetadataIf-Match header does not match the current ETag of the resourceIn-Progress header is provided, MUST assume that it is falseResponse Requirements
ETag header if implementing concurrency controlETag header if implementing concurrency control200 if the request was accepted immediately, a 202 if the request was queued for processing, or raise an error.Error Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)412 (DigestMismatch). Note that servers MAY NOT check digests in real-time.400 (ContentMalformed)Content-Type header contains a format that the server cannot accept, MUST respond with 415 (ContentTypeNotAcceptable)413 (MaxUploadSizeExceeded)400 (ByReferenceFileSizeExceeded)412 (ByReferenceNotAllowed)Metadata-Format header does not match the format found in the body content, MAY return 415 (FormatHeaderMismatch)Metadata-Format header indicates a format the server does not support, MUST return 415 (MetadataFormatNotAcceptable)If-Match header does not match the current ETag, MUST respond with 412 (ETagNotMatched)If-Match header is provided, MUST respond with 412 (ETagRequired)The Content-Disposition in this case would be:
Content-Disposition: attachment; metadata=true; by-reference=true
Replace in its entirety the Object, including all Metadata and Files, with the single Binary File. All previous files and metadata will be removed, and new ones will replace them (the updated item will have no Metadata, though). The server may or may not keep old versions of the content available.
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Content-Disposition header, with the appropriate value for the requestDigest headerContent-LengthContent-Type headerPackaging header, and if so MUST be the Binary format identifierIf-Match header, if the server implements concurrency controlIn-Progress headerServer Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestDigest headerContent-Length if this is providedoriginalDepositIf-Match header does not match the current ETag of the resourceIn-Progress header is provided, MUST assume that it is falseoriginalDeposit. The server MUST also remove all Metadata, so the Metadata Resource contains no fields.Response Requirements
ETag header if implementing concurrency controlETag header if implementing concurrency control200 if the request was accepted immediately, a 202 if the request was queued for processing, or raise an error.Error Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)412 (DigestMismatch). Note that servers MAY NOT check digests in real-time.400 (ContentMalformed)Content-Type header contains a format that the server cannot accept, MUST respond with 415 (ContentTypeNotAcceptable)413 (MaxUploadSizeExceeded)If-Match header does not match the current ETag, MUST respond with 412 (ETagNotMatched)If-Match header is provided, MUST respond with 412 (ETagRequired)The Content-Disposition in this case would be:
Content-Disposition: attachment; filename=[filename]
Replace in its entirety the Object, including all Metadata and Files, with the Metadata and Files contained in the Packaged Content. All previous files and metadata will be removed, and new ones will replace them. The server may or may not keep old versions of the content available.
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Content-Disposition header, with the appropriate value for the requestDigest headerContent-LengthContent-Type headerPackaging headerIf-Match header, if the server implements concurrency controlIn-Progress headerServer Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestDigest headerContent-Length if this is providedoriginalDepositderivedResources from it.If-Match header does not match the current ETag of the resourceIn-Progress header is provided, MUST assume that it is falseoriginalDeposit. The server MUST also remove all Metadata, so the Metadata Resource contains no fields.Response Requirements
ETag header if implementing concurrency controlETag header if implementing concurrency control200 if the request was accepted immediately, a 202 if the request was queued for processing, or raise an error.Error Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)412 (DigestMismatch). Note that servers MAY NOT check digests in real-time.400 (ContentMalformed)Content-Type header contains a format that the server cannot accept, MUST respond with 415 (ContentTypeNotAcceptable)413 (MaxUploadSizeExceeded)Packaging header, MUST respond with a 415 (PackagingFormatNotAcceptable)Packaging header does not match the format found in the body content, SHOULD return 415 (FormatHeaderMismatch). Note that the server may not be able to inspect the package during the request-response, so MAY NOT return this response.If-Match header does not match the current ETag, MUST respond with 412 (ETagNotMatched)If-Match header is provided, MUST respond with 412 (ETagRequired)The Content-Disposition in this case would be:
Content-Disposition: attachment; filename=[filename]
Replace in its entirety the Object, including all Metadata and Files, with a single Binary File, which will be delivered via Segmented File Upload. All previous files and metadata will be removed, and new ones will replace them. The server may or may not keep old versions of the content available.
First create a Temporary-URL to which to upload the file segments:
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Content-Disposition header, with the appropriate value for the requestContent-Length header with value 0Server Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestResponse Requirements
201 to indicate that the Segmented Upload has been initialised, or raise an error.Location header containing the Temporary-URL where the client can upload file segmentsError Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)400 (MaxAssembledSizeExceeded)400 (InvalidSegmentSize)400 (SegmentLimitExceeded)The Content-Disposition in this case would be:
Content-Disposition: segment-init; size=[bytes]; digest=[digest]; segment_count=[n]; segment_size=[bytes]
Then upload all the file segments as per Upload a File Segment.
Then carry out a By-Reference deposit using the Temporary-URL as per Replacing an Object with By-Reference Files only
This operation is carried out exactly as per Replacing an Object with a single Binary File via Segmented File Upload.
Delete all the metadata fields from the Object.
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Server Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestResponse Requirements
204 if the delete is successful, 202 if the delete is queued for processing, or raise an errorError Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)Delete a single File from the Object. The server may keep old versions of the file.
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Server Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestResponse Requirements
204 if the delete is successful, 202 if the delete is queued for processing, or raise an errorError Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)Remove all the Files from an object. This will leave the Object and its Metadata intact. The server may keep old versions of the files available.
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Server Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestResponse Requirements
204 if the delete is successful, 202 if the delete is queued for processing, or raise an errorError Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)Delete the Object in its entirety from the server, along with all Metadata and Files.
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Server Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestResponse Requirements
204 if the delete is successful, 202 if the delete is queued for processing, or raise an errorError Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Content-Disposition header, with the appropriate value for the requestContent-Length header with value 0Server Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestResponse Requirements
201 to indicate that the Segmented Upload has been initialised, or raise an error.Location header containing the Temporary-URL where the client can upload file segmentsError Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)400 (MaxAssembledSizeExceeded)400 (InvalidSegmentSize)400 (SegmentLimitExceeded)The Content-Disposition in this case would be:
Content-Disposition: segment-init; size=[bytes]; digest=[digest]; segment_count=[n]; segment_size=[bytes]
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Content-Disposition header, with the appropriate value for the requestDigest headerContent-LengthServer Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestDigest headerContent-Length if this is providedResponse Requirements
204 or a suitable errorError Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)412 (DigestMismatch). Note that servers MAY NOT check digests in real-time.400 (ContentMalformed)400 (InvalidSegmentSize)410 (SegmentedUploadTimedOut). Servers may also return 404 and no further explanation.400 (UnexpectedSegment)The Content-Disposition in this case would be:
Content-Disposition: segment; segment_number=[n]
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Server Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestResponse Requirements
204 if the delete is successful, 202 if the delete is queued for processing, or raise an errorError Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)Server Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestResponse Requirements
200 or a suitable errorError Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)Where you have previously carried out deposits and sent the object the In-Progress: true header, you will eventually need to tell the
server that you have completed your additions or modifications to the Object, so that it can finalise your deposit.
Protocol Operation
Request Requirements
Authorization and On-Behalf-Of headers (i.e. if authenticating this request)In-Progress: falseContent-Length header with value 0Server Requirements
Authorization (and optionally On-Behalf-Of) headers are provided, MUST authenticate the requestResponse Requirements
204 or a suitable errorError Responses
401 (AuthenticationRequired)403 (AuthenticationFailed)405 (MethodNotAllowed)On-Behalf-Of header has been provided, MAY respond with a 412 (OnBehalfOfNotAllowed)No Content-Disposition header is required in this request.