Individual Files
These steps outline how to upload a single, independent file (such as a content file or plugin script).
- The client makes a POST call to the
/sessions/None/uploads/
endpoint with the following Content-Type value:application/vnd.bsn.start.content.upload.arguments.201701+json
. The POST request body includes information about the file.- The response body includes an upload token for the file.
- The client uploads the file to the server by calling POST on the
/sessions/None/uploads/{uploadToken}/chunks/
endpoint. If the file is larger than approximately 256KB, the client will need to make multiple POST calls and use the?offset
URL parameter to segment the file into chunks. - The client completes the upload by calling PUT on the
/sessions/None/uploads/{uploadToken}/
endpoint with the following Content-Type value:application/vnd.bsn.complete.content.upload.arguments.201701+json
.
Note
Unlike other endpoints, the "/None/"
directory is case-sensitive and must be capitalized.
GET
Retrieves currently active webpage-upload sessions.
Parameters
marker
: A value specifying which page to retrieve. This value is useful if theisTruncated
entry in the response body of the previous GET call indicates that the number of WebpageUploadStatus instances exceeds thepageSize
.filter
: An expression for filtering search results.pageSize
: The maximum number of WebpageUploadStatus instances that can be contained in the response body
Headers
Accept: application/vnd.bsn.webpage.upload.status.pagedlist.201701+json
Response Body
[int] totalItemCount
: The total number of WebpageUploadStatus instances relevant to the query[int] pageSize
: The maximum number of WebpageUploadStatus instances that can be returned in a single response[bool] isTruncated
: A flag indicating whether thetotalItemCount
exceeds thepageSize
[string] nextMarker
: A value that can be included with a subsequent GET call to return additional results that have been truncated[string] sortExpression
: The sort expression specified in the URL[string] filterExpression
: The filter expression specified in the URL[WebpageUploadStatus[]]items
: An array of WebpageUploadStatus object instances representing active webpage-upload sessions. Each WebpageUploadStatus instance can have the following entries:[string] name
: The name of the webpage (i.e. the collection of files that make up the webpage)
[string] sessionToken
: A unique identifier for the webpage-upload session[string] uploadToken
: A unique identifier for the HTML-file upload session[int] contentId
: A unique identifier for the Content instance associated with the file being uploaded. This value is 0 while the upload session is in-progress.[string] fileName
: The name of the file being uploaded[string] sha1Hash
: The SHA1 hash value of the file contents[string] state
: The current state of the content upload session. The following are possible state values:"unknown"
"queued"
"started"
"uploading"
"stopped"
"uploaded"
"verified"
"cancelled"
"corrupted"
"collected"
"terminated"
"completed"
[string] startTime
: A UTC timestamp indicating when the content upload session began. The date/time is formatted asyyyy-mm-ddThh:mm:ss.sssZ
.[string] endTime
: A UTC timestamp indicating when the content upload session ended. The date/time is formatted asyyyy-mm-ddThh:mm:ss.sssZ
.[string] lastActivityTime
: A UTC timestamp indicating the last activity relating to the content upload session. The date/time is formatted asyyyy-mm-ddThh:mm:ss.sssZ
.[Chunk[]]chunks
: An array of Chunk object instances representing chunks of the file. Each Chunk instance can have the following entries:[int] count
: The number of chunks with the specifiedlength
andstate
. A zero value is used for the section of the file that has not been uploaded/queued yet.[int] length
: The byte length of the chunk(s)[string] state
: The upload Upload Endpoints (2017/01)#state of the chunk(s)
[WebPageAsset[]]assets
: An array of WebPageAsset object instances representing asset files that are part of the webpage. The server currently returns anull
value for this parameter.
POST
Creates a new webpage-upload session for the webpage and its asset files. This operation returns a token for the entire webpage-upload session, as well as a token for each asset-file upload.
Headers
Content-Type: application/vnd.bsn.start.webpage.upload.arguments.201701+json
-or- application/vnd.bsn.start.webpage.update.arguments.201701+json
Accept: application/vnd.bsn.webpage.upload.status.201701+json, application/vnd.bsn.error+json
Request Body
[string] name
: The name of the webpage (i.e. the collection of files that make up the webpage)[string] fileName
: The name of the HTML file[string] mediaType
: The media type, which must be"Webpage"
for the HTML file[int] fileSize
: The size of the HTML file (in bytes)[string] sha1Hash
: The SHA1 hash value of the file contents[WebPageAsset[]]assets
: An array of WebPageAsset object instances representing asset files to upload as part of the webpage. Each WebPageAsset instance can have the following entries:[string] fileName
: The name of the asset file[string] relativePath
: The path of the asset file relative to the HTML file. The path should be formatted as follows:"\\[directoryA]\\[directoryAb]\\[...]"
.[int] fileSize
: The size of the asset file (in bytes)[string] mediaType
: The media type of the asset file. The following are accepted types:"Auto"
"Text"
"Image"
"Video"
"Audio"
"Webpage"
"DeviceWebpage"
[string] sha1Hash
: The SHA1 hash value of the file contents
Response Body
[string] name
: The name of the webpage (i.e. the collection of files that make up the webpage)[string] sessionToken
: A unique identifier for the webpage-upload session[string] fileName
: The name of the HTML file[string] uploadToken
: A unique identifier for the HTML-file upload session[int] contentId
: A unique identifier for the Content instance associated with the file being uploaded. This value is 0 while the upload session is in-progress.[int] fileSize
: The size of the HTML file (in bytes)[string] sha1Hash
: The SHA1 hash value of the file contents[string] state
: The current state of the HTML-file upload session. This value defaults to"started"
in the POST response.[string] startTime
: A UTC timestamp indicating when the content upload session began. The date/time is formatted asyyyy-mm-ddThh:mm:ss.sssZ
.[string] endTime
: A UTC timestamp indicating when the content upload session ended. This value defaultsnull
in the POST response.[string] lastActivityTime
: A UTC timestamp indicating the last activity relating to the content upload session. The date/time is formatted asyyyy-mm-ddThh:mm:ss.sssZ
.[Chunk[]]chunks
: An array of Chunk object instances representing sequential chunks of the HTML file. Each Chunk instance can have the following entries:[int] count
: The order of the chunk in the sequence[int] length
: The length (in bytes) of the chunk[string] state
: The upload Upload Endpoints (2017/01)#state of the chunk.
[WebPageAsset[]]assets
: An array of WebPageAsset object instances representing asset files to upload as part of the webpage. Each WebPageAsset instance can have the following entries:[string] sessionToken
: A unique identifier for the webpage-upload session. This value is identical for all WebPageAsset instances in the array, as well as the parent HTML file.[string] fileName
: The name of the asset file[string] uploadToken
: A unique identifier for the asset-file upload session
[int] contentId
: A unique identifier for the Content instance asociated with the HTML file. This value is 0 while the upload session is in-progress.[int] fileSize
: The size of the asset file (in bytes)[string] sha1Hash
: The SHA1 hash value of the file contents[string] state
: The current state of the asset-file upload session. This value defaults to"queued"
in the POST response.[string] startTime
: A UTC timestamp indicating when the content upload session began. This value defaultsnull
in the POST response.[string] endTime
: A UTC timestamp indicating when the content upload session ended. This value defaultsnull
in the POST response.[string] lastActivityTime
: A UTC timestamp indicating the last activity relating to the content upload session. This value defaultsnull
in the POST response.[Chunk[]]chunks
: An array of Chunk object instances representing chunks of the file. Each Chunk instance can have the following entries:[int] count
: The number of chunks with the specifiedlength
andstate
. A zero value is used for the section of the file that has not been uploaded/queued yet.[int] length
: The byte length of the chunk(s)[string] state
: The upload Upload Endpoints (2017/01)#state of the chunk(s)
{sessionToken}/GET
Returns the asset-file upload sessions associated with the specifed webpage-upload session.
Headers
Accept: application/vnd.bsn.webpage.upload.status.201701+json
Response Body
[string] name
: The name of the webpage (i.e. the collection of files that make up the webpage)[string] sessionToken
: A unique identifier for the webpage-upload session[WebPageAsset[]]assets
: An array of WebPageAsset object instances representing asset files to upload as part of the webpage. Each WebPageAsset instance can have the following entries:[string] sessionToken
: The identifier for the webpage-upload session[string] fileName
: The name of the asset file[string] uploadToken
: A unique identifier for the asset-file upload session
[int] contentId
: A unique identifier for the Content instance asociated with the HTML file. This value is 0 while the upload session is in-progress.[int] fileSize
: The size of the asset file (in bytes)[string] sha1Hash
: The SHA1 hash value of the file contents[string] state
: The current Upload Endpoints (2017/01)#state of the asset-file upload session[string] startTime
: A UTC timestamp indicating when the content upload session began. The date/time is formatted asyyyy-mm-ddThh:mm:ss.sssZ
.[string] endTime
: A UTC timestamp indicating when the content upload session ended. This value isnull
when the session is active.[string] lastActivityTime
: A UTC timestamp indicating the last activity relating to the content upload session. The date/time is formatted asyyyy-mm-ddThh:mm:ss.sssZ
.[Chunk[]]chunks
: An array of Chunk object instances representing chunks of the file. Each Chunk instance can have the following entries:[int] count
: The number of chunks with the specifiedlength
andstate
. A zero value is used for the section of the file that has not been uploaded/queued yet.[int] length
: The byte length of the chunk(s)[string] state
: The upload Upload Endpoints (2017/01)#state of the chunk(s)
{sessionToken}/PUT
Completes a webpage-upload session.
Headers
Content-Type: application/vnd.bsn.complete.webpage.upload.arguments.201701+json
Request Bobdy
[string] name
: The name of the webpage (i.e. the collection of files that make up the webpage)[string] fileName
: The name of the HTML file[int] fileSize
: The size of the HTML file (in bytes)[string] relativePath
: The relative path of the HTML file. The path should be formatted as follows:"\\[directoryA]\\[directoryAb]\\[...]"
. For files in the same directory as the HTML file (or the HTML file itself), the path is specified as"\\"
.
{sessionToken}/DELETE
Terminates the specified webpage-upload session. The server returns code 204 on success.
{sessionToken}/uploads/GET
Returns currently active file uploads that are part of the specified webpage-upload session (including both the HTML file and its asset files). Calling GET on the /sessions/None/uploads/
endpoint returns independent file uploads (i.e. uploads that are not part of a webpage-upload session).
Parameters
marker
: A value specifying which page to retrieve. This value is useful if theisTruncated
entry in the response body of the previous GET call indicates that the number of WebpageUploadStatus instances exceeds thepageSize
.filter
: An expression for filtering search results.pageSize
: The maximum number of WebpageUploadStatus instances that can be contained in the response body
Headers
Accept: application/vnd.bsn.content.upload.status.pagedlist.201701+json, application/vnd.bsn.error+json
Response Body
[int] totalItemCount
: The total number of WebpageUploadStatus instances relevant to the query[int] pageSize
: The maximum number of WebpageUploadStatus instances that can be returned in a single response[bool] isTruncated
: A flag indicating whether thetotalItemCount
exceeds thepageSize
[string] nextMarker
: A value that can be included with a subsequent GET call to return additional results that have been truncated[string] sortExpression
: The sort expression specified in the URL[string] filterExpression
: The filter expression specified in the URL[ContentUploadStatus[]]items
: An array of Content object instances representing HTML and asset file uploads that are part of the session. Each WebpageUploadStatus instance can have the following entries:[string] sessionToken
: The identifier for the webpage-upload session[string] fileName
: The name of the HTML or asset file[string] uploadToken
: A unique identifier for the file upload session
[int] contentId
: A unique identifier for the Content instance asociated with the file. This value is 0 while the upload session is in-progress.[int] fileSize
: The size of the file (in bytes)[string] sha1Hash
: The SHA1 hash value of the file contents[string] state
: The current Upload Endpoints (2017/01)#state of the asset-file upload session[string] startTime
: A UTC timestamp indicating when the content upload session began. The date/time is formatted asyyyy-mm-ddThh:mm:ss.sssZ
.[string] endTime
: A UTC timestamp indicating when the content upload session ended. This value isnull
when the session is active.[string] lastActivityTime
: A UTC timestamp indicating the last activity relating to the content upload session. The date/time is formatted asyyyy-mm-ddThh:mm:ss.sssZ
.[Chunk[]]chunks
: An array of Chunk object instances representing chunks of the HTML/asset file. The server currently returnsnull
for this parameter.
{sessionToken}/uploads/POST
Begins a new file upload. Calling POST on the /sessions/None/uploads/
endpoint begins an independent file upload.
{sessionToken}/uploads/{uploadToken}/GET
Returns the specified active file upload that is part of the specified webpage-upload session. Calling GET on the /sessions/None/uploads/{uploadToken}/
endpoint retrieves an independent file upload (i.e. an upload that is not part of a webpage-upload session).
Headers
Accept: application/vnd.bsn.content.upload.status.201701+json
Response Body
[string] sessionToken
: The identifier for the webpage-upload session. The value will benull
for an independent file upload.[string] fileName
: The name of the file[string] uploadToken
: A unique identifier for the file upload session
[int] contentId
: A unique identifier for the Content instance asociated with the file. This value is 0 while the upload session is in-progress.[int] fileSize
: The size of the file (in bytes)[string] sha1Hash
: The SHA1 hash value of the file contents[string] state
: The current Upload Endpoints (2017/01)#state of the file upload session[string] startTime
: A UTC timestamp indicating when the content upload session began. The date/time is formatted asyyyy-mm-ddThh:mm:ss.sssZ
.[string] endTime
: A UTC timestamp indicating when the content upload session ended. This value isnull
when the session is active.[string] lastActivityTime
: A UTC timestamp indicating the last activity relating to the content upload session. The date/time is formatted asyyyy-mm-ddThh:mm:ss.sssZ
.[Chunk[]]chunks
: An array of Chunk object instances representing chunks of the file. Each Chunk instance can have the following entries:[int] count
: The number of chunks with the specifiedlength
andstate
. A zero value is used for the section of the file that has not been uploaded/queued yet.[int] length
: The byte length of the chunk(s)[string] state
: The upload Upload Endpoints (2017/01)#state of the chunk(s)
{sessionToken}/uploads/{uploadToken}/PUT
Starts, completes, or updates a file upload session (depending on the value of the Content-Type header). Calling PUT on the /sessions/None/uploads/{uploadToken}/
endpoint modifies an independent file upload.
Headers
Content-Type:
application/vnd.bsn.content.upload.arguments.201701+json
-or- application/vnd.bsn.start.content.upload.arguments.201701+json
-or- application/vnd.bsn.complete.content.upload.arguments.201701+json
-or- application/vnd.bsn.content.update.arguments.201701+json
-or- application/vnd.bsn.start.content.update.arguments.201701+json
-or- application/vnd.bsn.complete.content.update.arguments.201701+json
-or- application/vnd.bsn.webpage.asset.upload.arguments.201701+json
-or- application/vnd.bsn.start.webpage.asset.upload.arguments.201701+json
-or- application/vnd.bsn.complete.webpage.asset.upload.arguments.201701+json
Accept: application/vnd.bsn.content.upload.status.201701+json, application/vnd.bsn.content.upload.negotiation.status.201701+json, application/vnd.bsn.error+json
Request Body
[string] fileName
: The name of the file[int] fileSize
: The size of the file (in bytes)[string] relativePath
: The relative path of the file. The path should be formatted as follows:"\\[directoryA]\\[directoryAb]\\[...]"
. For files in the same directory as the HTML file (or the HTML file itself), the path is specified as"\\"
.
{sessionToken}/uploads/{uploadToken}/DELETE
Terminates the specified upload that is part of the specified webpage-upload session. Calling DELETE on the /sessions/None/uploads/{uploadToken}/
endpoint terminates an independent file upload. The server returns code 204 on success.
{sessionToken}/uploads/{uploadToken}/chunks/GET
Returns the status of all file chunks that are part of the file specified file upload.
Headers
Accept: application/vnd.bsn.upload.content.chunk.status.list.201701+json
Response Body
[Chunk[]]chunks
: An array of Chunk object instances representing chunks of the file. Each Chunk instance can have the following entries:
[int] count
: The number of chunks with the specifiedlength
andstate
. A zero value is used for the section of the file that has not been uploaded/queued yet.[int] length
: The byte length of the chunk(s)[string] state
: The upload Upload Endpoints (2017/01)#state of the chunk(s)
{sessionToken}/uploads/{uploadToken}/chunks/POST
Appends a file chunk to the file upload, placing it in the queue for assembly. The server returns code 202 upon completion.
File chunks don't have to be uploaded in order, and multiple chunks can be uploaded simultaneously. We reccomend a default chunk size of 256KB for multi-chunk files, though this number can be flexible depending on network performance.
Parameters
offset
: The offset of the file chunk (in bytes) from the beginning of the file.
Headers
Accept: application/vnd.bsn.error+json
Content-Type: application/octet-stream
Content-Length: [fileChunkLength]
Request Body
The request body should contain the file-chunk as binary data.