Setting up Connect:Direct Node for object store providers

Store Object naming and initparm.cfg

Objects on object stores can be read and written with Connect:Direct.

A file name identified with an URI type format is an object in an object store.
scheme://bucketOrContainer/objectKey

The scheme in the Connect:Direct process file name is used to search for the right entry in the initparm.cfg file using the name field in a file.ioexit section as the key.

Connect:Direct® for UNIX can read and/or write to the following object stores:
  • Amazon S3
  • IBM Cloud Object Storage
  • Azure Blob
  • Google Storage

Each of them is named an object provider. Each time a process involves an object from an object store, the right provider must be triggered. This is performed using properties set in the process or in the initparm.cfg file.

Selecting the right Provider

Main property

Store provider selection is triggered by the value of the store.providerName property (See Stores Properties). The following names are available and valid:
  • Amazon S3: S3
  • IBM Cloud Object Storage: COS
  • Azure Blob: AZ
  • Google Storage: GS

S3 is the default value and can be omitted if Amazon S3 is the expected provider.

Each provider owns its subset of properties. Use these properties to fine configure this provider usage for credentials, endpoints, and objects properties.

Using initparm.cfg file

Initparm.cfg file include a section dedicated to store providers. The file.ioexit section identifies a behavior to adopt thru a set of properties. More than one entry can exist and each of them can define a different provider and/or a different behavior for the same provider.

Note: Any colon characters (':') in a parameter value must be escaped with a backslash ('\').
# Azure 
file.ioexit:\
 :name=AZ:\
 :library=/opt/cdunix/ndm/lib/libcdjnibridge.so:\
 :home.dir=/opt/cdunix/ndm/ioexit-plugins/s3:\
 :options=-Xmx640m \
 -Dstore.providerName=AZ \
-Djava.class.path=/opt/cdunix/ndm/ioexit-plugins/s3/cd-s3-ioexit.jar com.aricent.ibm.mft.connectdirect.s3ioexit.S3IOExitFactory:

# Amazon S3 Production
file.ioexit:\
 :name=S3Prod:\
 :library=/opt/cdunix/ndm/lib/libcdjnibridge.so:\
 :home.dir=/opt/cdunix/ndm/ioexit-plugins/s3:\
 :options=-Xmx640m -Ds3.profileName=profileProd \
-Djava.class.path=/opt/cdunix/ndm/ioexit-plugins/s3/cd-s3-ioexit.jar com.aricent.ibm.mft.connectdirect.s3ioexit.S3IOExitFactory:

# Amazon S3 QA
file.ioexit:\
 :name=S3QA:\
 :library=/opt/cdunix/ndm/lib/libcdjnibridge.so:\
 :home.dir=/opt/cdunix/ndm/ioexit-plugins/s3:\
 :options=-Xmx640m -Ds3.profileName=profileQA \
-Djava.class.path=/opt/cdunix/ndm/ioexit-plugins/s3/cd-s3-ioexit.jar com.aricent.ibm.mft.connectdirect.s3ioexit.S3IOExitFactory:

Using sysopts

Connect:Direct sysopts can also be used to select the right store provider. All properties can be overridden using sysopts, the store.providerName can also be overridden.

# All-purpose entry, default to S3
file.ioexit:\
 :name=ALL:\
 :library=/opt/cdunix/ndm/lib/libcdjnibridge.so:\
 :home.dir=/opt/cdunix/ndm/ioexit-plugins/s3:\
 :options=-Xmx640m \
-Djava.class.path=/opt/cdunix/ndm/ioexit-plugins/s3/cd-s3-ioexit.jar com.aricent.ibm.mft.connectdirect.s3ioexit.S3IOExitFactory:


#Write to an Azure container using the all-purpose entry
To (
FILE=ALL://container/object
sysopts=’:store.providerName=AZ:az.connectionString=’aconnectionstring’:’
DISP=RPL

#Write to an S3 bucket using the all-purpose entry
To (
FILE=ALL://container/object
sysopts=’:s3.accessKey=…:s3.secretKey=…:’
DISP=RPL