Hi,
Unfortunately, I don't have Azure, but I've used CDA in the past to work with an on prem minio server,
this sample might help -
//CDATEST JOB CLASS=A,MEMLIMIT=NOLIMIT,MSGCLASS=H,MSGLEVEL=(1,1),
// NOTIFY=&SYSUID.,REGION=0M,TIME=1
//*
/*JOBPARM SYSAFF=LTE1 */
//*
//*-+----1----+----2----+----3----+----4----+----5----+----6----+-
// EXPORT SYMLIST=* * Job Created on 20240629 By TRAVIST
//*-+----1----+----2----+----3----+----4----+----5----+----6----+-
//*
//* JOB: Use GDKUTIL to interact with a Cloud (MINIO)
//*
//* Uses: /u/<username>/gdk/providers/MINIO.json
//* /u/<username>/gdk/config.json
//*
//* Use "tso exec 'sys1.saxrexec(gdkauthp)'" to set your credentials.
//*
//*
//*------------------------------------------------
//*
//* Proc: Create Bucket
//*
//CREBUCKT PROC CLOUD=, * which cloud provider e.g. MINIO
// BUCKET=, * The remote bucket name
// OPTIONS=''
//CREBUCKT EXEC PGM=GDKUTIL
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD DATA,SYMBOLS=JCLONLY
OPERATION(CREATEBUCKET)
PROVIDER(&CLOUD.)
&OPTIONS.
/*
//OBJNAME DD DATA,SYMBOLS=JCLONLY
/&BUCKET.
/*
//CREBUCKT PEND
//*
//*------------------------------------------------
//*
//* Proc: Delete Bucket
//*
//DELBUCKT PROC CLOUD=, * which cloud provider e.g. MINIO
// BUCKET='a-bucket', * The remote bucket name
// OPTIONS=''
//DELBUCKT EXEC PGM=GDKUTIL
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD DATA,SYMBOLS=JCLONLY
OPERATION(DELETEBUCKET)
PROVIDER(&CLOUD.)
&OPTIONS.
/*
//OBJNAME DD DATA,SYMBOLS=JCLONLY
/&BUCKET.
/*
//DELBUCKT PEND
//*------------------------------------------------
//*
//* PROC: List path / bucket
//*
//LIST PROC CLOUD=, * which cloud provider to use e.g. MINIO
// PATH=, * the remote directory to list
// OPTIONS=''
//LIST EXEC PGM=GDKUTIL
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD DATA,SYMBOLS=JCLONLY
LIST
PROVIDER(&CLOUD.)
&OPTIONS.
/*
//OBJNAME DD DATA,SYMBOLS=JCLONLY
&PATH.
/*
//LIST PEND
//*
//*------------------------------------------------
//*
//* PROC: Download object to file
//*
//DOWNLOAD PROC CLOUD=, * which cloud provider e.g. MINIO
// BUCKET=, * The remote bucket name
// OBJECT=, * The remote file to download
// LOCALDIR=, * The local directory to download to
// LOCALNM=, * The local file name to write to
// OPTIONS='' * e.g. CONVERT , WEBTOOLKITLOG
//* * LOG(DEBUG)
//DOWNLOAD EXEC PGM=GDKUTIL
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD DATA,SYMBOLS=JCLONLY
DOWNLOAD
PROVIDER(&CLOUD.)
&OPTIONS.
/*
//OBJNAME DD DATA,SYMBOLS=JCLONLY
/&BUCKET./&OBJECT.
/*
//LOCNAME DD DATA,SYMBOLS=JCLONLY
&LOCALDIR./&LOCALNM.
/*
//DOWNLOAD PEND
//*
//*------------------------------------------------
//*
//* PROC: Upload file to a bucket
//*
//UPLOAD PROC CLOUD=, * which cloud provider e.g. MINIO
// LOCALDIR=, * The local directory to upload from
// LOCALNM=, * The local file name to upload
// BUCKET=, * The remote bucket name
// OBJECT=, * The remote file to create
// OPTIONS='' * e.g. CONVERT , WEBTOOLKITLOG
//* * LOG(DEBUG)
//UPLOAD EXEC PGM=GDKUTIL
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD DATA,SYMBOLS=JCLONLY
UPLOAD
PROVIDER(&CLOUD.)
&OPTIONS.
/*
//LOCNAME DD DATA,SYMBOLS=JCLONLY
&LOCALDIR./&LOCALNM.
/*
//OBJNAME DD DATA,SYMBOLS=JCLONLY
/&BUCKET./&OBJECT.
/*
//UPLOAD PEND
//*
//*------------------------------------------------
//*
//* PROC: Delete an object from a bucket
//*
//DELOBJ PROC CLOUD=, * which cloud provider e.g. MINIO
// BUCKET=, * The remote bucket name
// OBJECT=, * The remote file to delete
// OPTIONS='' * e.g. CONVERT , WEBTOOLKITLOG
//DELOBJ EXEC PGM=GDKUTIL
//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//SYSIN DD DATA,SYMBOLS=JCLONLY
DELETE
PROVIDER(&CLOUD.)
&OPTIONS.
/*
//OBJNAME DD DATA,SYMBOLS=JCLONLY
/&BUCKET./&OBJECT.
/*
//DELOBJ PEND
//*================================================
//*================================================
//*
//* >>> Interact with the "Cloud!" <<<
//*
//* Create a bucket
//*
// EXEC CREBUCKT,CLOUD=MINIO,BUCKET='my-bucket-001'
//*
//* Create a local file
//*
//CREFILE EXEC PGM=BPXBATCH
//STDOUT DD SYSOUT=*
//STDPARM DD DATA
SH echo 'Hello' > /tmp/afile.txt
/*
//*
//* Upload the file to the bucket
//*
// EXEC UPLOAD,CLOUD=MINIO,
// LOCALDIR='/tmp',LOCALNM='afile.txt',
// BUCKET='my-bucket-001',OBJECT='afile.txt'
//*
//* List the bucket
//*
// EXEC LIST,CLOUD=MINIO,PATH='/my-bucket-001'
//*
//* Download the file from the bucket
//*
// EXEC DOWNLOAD,CLOUD=MINIO,BUCKET='my-bucket-001',
// OBJECT='afile.txt',
// LOCALDIR='/tmp',LOCALNM='afile2.txt'
//*
//* Display downloaded file & remove the file
//*
//DISPLAY EXEC PGM=BPXBATCH
//STDOUT DD SYSOUT=*
//STDPARM DD DATA
SH cat /tmp/afile2.txt ; rm /tmp/afile2.txt
/*
//*
//* Delete the file from the bucket
//*
// EXEC DELOBJ,CLOUD=MINIO,BUCKET='my-bucket-001',
// OBJECT='afile.txt'
//*
//* Delete a bucket
//*
// EXEC DELBUCKT,CLOUD=MINIO,BUCKET='my-bucket-001'