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 0
Slug
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 false
In-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-Length
Content-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 false
In-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-Length
Content-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 false
In-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-Length
Content-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 false
In-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-Length
Content-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 providedoriginalDeposit
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 false
In-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-Length
Content-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 providedoriginalDeposit
derivedResource
s 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 false
In-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 0
Server 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-Length
Content-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 false
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)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-Length
Content-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 false
originalDeposit
sResponse 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-Length
Content-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 false
originalDeposit
s, 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-Length
Content-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 providedoriginalDeposit
If-Match
header does not match the current ETag
of the resourceIn-Progress
header is provided, MUST assume that it is false
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.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-Length
Content-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 providedoriginalDeposit
derivedResource
s from it.If-Match
header does not match the current ETag
of the resourceIn-Progress
header is provided, MUST assume that it is false
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.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 0
Server 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-Length
Content-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-Length
Content-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 providedoriginalDeposit
If-Match
header does not match the current ETag
of the resourceoriginalDeposit
Response 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-Length
Content-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 resourceoriginalDeposit
Response 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 0
Server 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-Length
Content-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 resourceoriginalDeposit
sResponse 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-Length
Content-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 providedoriginalDeposit
If-Match
header does not match the current ETag
of the resourceoriginalDeposit
Response 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 0
Server 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-Length
Content-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 false
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)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-Length
Content-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 false
originalDeposit
s. 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-Length
Content-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 false
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
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-Length
Content-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 providedoriginalDeposit
If-Match
header does not match the current ETag
of the resourceIn-Progress
header is provided, MUST assume that it is false
originalDeposit
. 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-Length
Content-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 providedoriginalDeposit
derivedResource
s from it.If-Match
header does not match the current ETag
of the resourceIn-Progress
header is provided, MUST assume that it is false
originalDeposit
. 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 0
Server 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 0
Server 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-Length
Server 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: false
Content-Length
header with value 0
Server 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.