class S3BinaryStore extends AbstractBinaryStore {

    @Override
    public String getExtractedText(BinaryValue binaryValue) throws BinaryStoreException {
        try {
            String key = binaryValue.getKey().toString();
            ObjectMetadata metadata = s3Client.getObjectMetadata(bucketName, key);
            return metadata.getUserMetadata().get(EXTRACTED_TEXT_KEY);
        } catch (AmazonClientException e) {
            throw new BinaryStoreException(e);
        }
    }

    public  S3BinaryStore(String accessKey, String secretKey, String bucketName);
    public  S3BinaryStore(String accessKey, String secretKey, String bucketName, String endPoint);
    public  S3BinaryStore( String accessKey,
                          String secretKey,
                          String bucketName,
                          String endPoint,
                          Boolean deleteUnusedNatively );
    protected  S3BinaryStore(String bucketName, AmazonS3 s3Client, boolean deleteUnusedNatively);

}