Package com.ibm.fhir.bucket.cos
Class COSClient
- java.lang.Object
-
- com.ibm.fhir.bucket.cos.COSClient
-
public class COSClient extends java.lang.ObjectEncapsulates the AmazonS3 client for interaction with IBM Cloud Object Storage (COS)
-
-
Constructor Summary
Constructors Constructor Description COSClient(java.util.Properties cosProperties)Public constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidprocess(java.lang.String bucketName, java.lang.String itemName, java.util.function.Consumer<java.io.BufferedReader> consumer)Read and process the object, feeding the content to the given consumer as a BufferedReader.<T> Tread(java.lang.String bucketName, java.lang.String itemName, java.util.function.Function<java.io.PushbackInputStream,T> fn)Read the object using the given functionvoidscan(java.lang.String bucketName, java.lang.String pathPrefix, java.util.function.Function<java.lang.String,FileType> fileTyper, java.util.function.Consumer<CosItem> consumer)Scan the COS bucket, feeding each returned item to the given consumervoidsignalStop()Tell the scanner to stop.voidwrite(java.lang.String bucketName, java.lang.String objectName, java.lang.String payload)Write the payload to the given bundleName as key
-
-
-
Method Detail
-
signalStop
public void signalStop()
Tell the scanner to stop. Can be used to get scan() to finish early
-
read
public <T> T read(java.lang.String bucketName, java.lang.String itemName, java.util.function.Function<java.io.PushbackInputStream,T> fn)Read the object using the given function- Type Parameters:
T-- Parameters:
bucketName-itemName-fn-- Returns:
-
process
public void process(java.lang.String bucketName, java.lang.String itemName, java.util.function.Consumer<java.io.BufferedReader> consumer)Read and process the object, feeding the content to the given consumer as a BufferedReader. We keep control of the stream, and close it when the consumer accept call returns- Parameters:
bucketName-itemName-consumer-
-
scan
public void scan(java.lang.String bucketName, java.lang.String pathPrefix, java.util.function.Function<java.lang.String,FileType> fileTyper, java.util.function.Consumer<CosItem> consumer)Scan the COS bucket, feeding each returned item to the given consumer- Parameters:
bucketName-fileType- function to derive fileType from the item key valueconsumer- target for each non-empty CosItem we find in the bucket
-
write
public void write(java.lang.String bucketName, java.lang.String objectName, java.lang.String payload)Write the payload to the given bundleName as key- Parameters:
bundleName-payload-
-
-