Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "SMILA/Documentation/Binary Storage"
(→Binary Storage Usage) |
|||
Line 33: | Line 33: | ||
byte[] dataRecord = ... // Build record | byte[] dataRecord = ... // Build record | ||
+ | // Store the binary record as byte array | ||
binaryStorageService.store(attacmentIdKey, dataRecord); | binaryStorageService.store(attacmentIdKey, dataRecord); | ||
+ | // Fetch record as stream | ||
final InputStream stream = binaryStorageService.fetchAsStream(attacmentIdKey); | final InputStream stream = binaryStorageService.fetchAsStream(attacmentIdKey); | ||
− | final String newAttacmentIdKey = | + | // Define new ID and store new data from the first record's input stream |
− | + | final String newAttacmentIdKey = attacmentIdKey + "0000"; | |
+ | binaryStorageService.store(newAttacmentIdKey, stream); | ||
stream.close(); | stream.close(); | ||
− | final byte[] recordByte = | + | // Fetch the newest record as array of byte |
− | + | final byte[] recordByte = binaryStorageService.fetchAsByte(newAttacmentIdKey); | |
− | final int sizeInitial = _binaryStorageService.fetchSize( | + | // The two records must have the same size |
− | final int sizeFinal = | + | final int sizeInitial = _binaryStorageService.fetchSize(attacmentIdKey); |
+ | final int sizeFinal = binaryStorageService.fetchSize(newAttacmentIdKey); | ||
+ | // Remove the two records | ||
binaryStorageService.remove(attacmentIdKey); | binaryStorageService.remove(attacmentIdKey); | ||
binaryStorageService.remove(newAttacmentIdKey); | binaryStorageService.remove(newAttacmentIdKey); | ||
</source> | </source> |
Revision as of 08:33, 11 November 2008
Overview
Binary Storage Service provides an easy way to store / access binary data documents.
Client components access the Binary Storage Service for persisting binary data (attachments) into the binary storage. The binary data are identified by a unique key / identifier as a String data type.
Binary Storage Configuration
Currently, Binary Storage is able to run and store data into a hierarchical structure (uses deterministically calculation based on the hash id passed by the client component, like the ID passed from the Blackboard Service) and flat structure.
To configure the needed persistence storage structure, simply edit the /configuration/binarystorageconfig.properties file and change the value of 'bss.manager.class' key field to one of the following available possibilities :
- org.eclipse.smila.binarystorage.internal.impl.persistence.filesystem.IOHierarchicalManager
- org.eclipse.smila.binarystorage.internal.impl.persistence.filesystem.IOFlatManager
In the next future there will be other available managers that provides the appropriate implementation for Binary Storage persistence structure.
Binary Storage API
void store(String id, InputStream stream); void store(String id, byte[] blob) byte[] fetchAsByte(String id) InputStream fetchAsStream(String id) void remove(String id) int fetchSize(String id)
Binary Storage Usage
BinaryStorageService binaryStorageService = ...; // Obtain the binary storage service String attacmentIdKey = ...; // Unique ID byte[] dataRecord = ... // Build record // Store the binary record as byte array binaryStorageService.store(attacmentIdKey, dataRecord); // Fetch record as stream final InputStream stream = binaryStorageService.fetchAsStream(attacmentIdKey); // Define new ID and store new data from the first record's input stream final String newAttacmentIdKey = attacmentIdKey + "0000"; binaryStorageService.store(newAttacmentIdKey, stream); stream.close(); // Fetch the newest record as array of byte final byte[] recordByte = binaryStorageService.fetchAsByte(newAttacmentIdKey); // The two records must have the same size final int sizeInitial = _binaryStorageService.fetchSize(attacmentIdKey); final int sizeFinal = binaryStorageService.fetchSize(newAttacmentIdKey); // Remove the two records binaryStorageService.remove(attacmentIdKey); binaryStorageService.remove(newAttacmentIdKey);