Client: Provide utility methods for binary transfer
Closes #25 (closed)
Changes
- Fix bug in server-side
UploadService.deleteBinary - Move
BinaryInfoandBinaryTransferErrorfromserver_basetocore - Add
BinaryUploadHelperandBinaryDownloadHelperas client-side utilities- Wrap upload and download procedures into simple method calls
- MR includes tests for these utilities
New API
// binary upload
BinaryUploadHelper uploader = new BinaryUploadHelper(channel)
BinaryInfo info = uploader.upload(byte[] bytes, String parameterId) // for upload of in-memory data
BinaryInfo info = uploader.upload(InputStream byteStream, long length, String parameterId) // for upload of bytes from a stream (e.g. file)
BinaryUploadHelper uploader = uploader.withMetadata(Message... metadataMessages) // for sending metadata with CreateBinary
BinaryUploadHelper uploader = uploader.withMetadata(List<Message> metadataMessages) // for sending metadata with CreateBinary
uploader.deleteBinary(UUID binaryTransferUuid) // for deleting binaries on the server
// binary download
var downloader = new BinaryDownloadHelper(channel)
BinaryInfo info = downloader.getBinaryInfo(UUID binaryTransferUUID) // for requesting information about a binary
byte[] bytes = downloader.download(UUID binaryTransferUUID) // for download into memory
downloader.download(UUID binaryTransferUUID, Path downloadFile) // for download in file
downloader.deleteBinary(UUID binaryTransferUUID) // for deleting binaries on the server