Differences between revisions 3 and 4
Revision 3 as of 2008-09-12 21:57:39
Size: 1649
Editor: kfc
Comment:
Revision 4 as of 2008-10-13 14:31:53
Size: 4061
Editor: jrg
Comment:
Deletions are marked like this. Additions are marked like this.
Line 17: Line 17:
WSDL: attachment:Bitstorage.xml
Line 40: Line 39:



=== Bitstorage API ===

WSDL: attachment:Bitstorage.xml

The following describes those methods of the Bitstorage API that may be called by the GUI.

==== uploadFile ====
Upload the provided file to the temporary area of bitstorage,
giving it the provided file name.
Return the MD5 checksum of the file.
The file is only uploaded to a temporary approve-area of
the bitstorage, and needs to be approved by calling approveFile before
it is actually moved to the permanent bitstorage.

If you try to upload a file that is already there, it checks the provided
md5 against the file of the file on the server. If they match, there is no
upload, you just get the return about the file already there.
If they do not match, an exception is thrown.

Input parameters:
 * {{{String fileName}}} The filename to store the file by.
 * {{{URI localurl}}} The url to where the bitstorage webservice can get the file.
 * {{{String provided_md5}}} The locally generated md5sum of the file.

Returns:
 * {{{BitstorageFile}}} A bitstorage object, detailing the characteritics and public url of the uploaded file. Data structure summarized below.


==== approveFile ====
Check the earlier uploaded file against the provided checksum, and if
this succeeds, and possibly other criteria are met, move the file
from the temporary area of bitstorage to the permanent bitstorage.

If you call this method on an already approved file, with the correct checksum, nothing happens.
If the checksum is wrong, you get an exception.

Input parameters:
 * {{{URI fileurl}}} The url to the file (in bitstorage)
 * {{{String md5sum}}} The md5sum of the file


==== disapproveFile ====
Delete the named file from bitstorage. Only works for files that have
not yet been approved.

If the file is not in temporary bitstorage nothing happens.

Input parameters:
 * {{{URI fileurl}}} The url to the file (in bitstorage).
 * {{{String md5sum}}} The md5sum of the file.


==== spaceLeft ====
Return the number of bytes left in bitstorage.

Returns:
 * {{{long}}} The number of bytes left in bitstorage.



=== Data structures ===

==== BitstorageFile ====
Returned by uploadFile.

Contains the following public methods.

 * {{{URI getFileurl}}}
 * {{{String getFileName}}}
 * {{{byte[] getCharacterizationOutput}}}
 * {{{String getMd5CheckSum}}}
 * {{{String getPronomID}}}
 * {{{String getValidationStatus}}}

Bitstorage API

To add files to DOMS, three things will need to happen:

  • The file must be uploaded to bitstorage, and characterised
  • The file must be connected to a Fedora object datastream of type TypeFile

  • The characterisation output must be added to a Technical Metadata-stream in the object (the file and the characterisation result must match, see the data model documentation)

Uploading the file to bit storage must be done with API calls for

  uploadFile  - in: filename,URLToFile,md5 out:characterizationOutput,fileName,fileUrl,md5,pronomId,validationStatus
  approveFile - in: fileUrl,md5
  disapproveFile - in: fileUrl,md5
  spaceLeft - out: bytes

Basically, you upload a file by presenting the bit storage resolvable URI, and the expected MD5 sum. The file will then be made available, and you will get a URI the file is stored on, and characteristica of the file back.

Those characteristica MUST be added in the proper places of the accompanying Fedora object.

Approve is used when the accompanying Fedora object is first sets published.

Disapprove is used if the accompanying Fedora object is marked deleted before publishing.

Examples

Adding a file and an accompanying fedora metadata object:

  • Make a new fedora object of type File in draft mode
  • Call upload on the bitstorage API
  • Add pronomid and characterisation to the appropriate datastreams
  • Set URL and MD5 on the CONTENT datastream

Publishing a file fedora object

  • Set fedora metadata objects to state "published"
  • Call approve from the bitstorage API

Bitstorage API

WSDL: attachment:Bitstorage.xml

The following describes those methods of the Bitstorage API that may be called by the GUI.

uploadFile

Upload the provided file to the temporary area of bitstorage, giving it the provided file name. Return the MD5 checksum of the file. The file is only uploaded to a temporary approve-area of the bitstorage, and needs to be approved by calling approveFile before it is actually moved to the permanent bitstorage.

If you try to upload a file that is already there, it checks the provided md5 against the file of the file on the server. If they match, there is no upload, you just get the return about the file already there. If they do not match, an exception is thrown.

Input parameters:

  • String fileName The filename to store the file by.

  • URI localurl The url to where the bitstorage webservice can get the file.

  • String provided_md5 The locally generated md5sum of the file.

Returns:

  • BitstorageFile A bitstorage object, detailing the characteritics and public url of the uploaded file. Data structure summarized below.

approveFile

Check the earlier uploaded file against the provided checksum, and if this succeeds, and possibly other criteria are met, move the file from the temporary area of bitstorage to the permanent bitstorage.

If you call this method on an already approved file, with the correct checksum, nothing happens. If the checksum is wrong, you get an exception.

Input parameters:

  • URI fileurl The url to the file (in bitstorage)

  • String md5sum The md5sum of the file

disapproveFile

Delete the named file from bitstorage. Only works for files that have not yet been approved.

If the file is not in temporary bitstorage nothing happens.

Input parameters:

  • URI fileurl The url to the file (in bitstorage).

  • String md5sum The md5sum of the file.

spaceLeft

Return the number of bytes left in bitstorage.

Returns:

  • long The number of bytes left in bitstorage.

Data structures

BitstorageFile

Returned by uploadFile.

Contains the following public methods.

  • URI getFileurl

  • String getFileName

  • byte[] getCharacterizationOutput

  • String getMd5CheckSum

  • String getPronomID

  • String getValidationStatus

Bitstorage API (last edited 2010-03-17 13:09:38 by localhost)