Lists

Oracle Integration Cloud Adapters

Oracle

  • Adobe Sign
  • Apache Kafka
  • Automation Anywhere
  • Box
  • DocuSign
  • Eventbrite
  • Evernote
  • FTP
  • Facebook
  • File
  • Gmail
  • Google Calendar
  • Google Tasks
  • IBM DB2
  • IBM MQ JMS
  • LinkedIn
  • Mailchimp
  • Marketo
  • Microsoft 365 Calendar
  • Microsoft 365 Contacts
  • Microsoft 365 Mail
  • Microsoft SQL Server
  • MySQL
  • Oracle Autonomous Data Warehouse
  • Oracle Autonomous Transaction Processing
  • Oracle B2C Service
  • Oracle CPQ Cloud
  • Oracle CX Sales
  • Oracle Commerce Cloud
  • Oracle Database
  • Oracle Database Cloud Service
  • Oracle E-Business Suite
  • Oracle EPM Cloud
  • Oracle Eloqua
  • Oracle Field Service Cloud
  • Oracle HCM Cloud
  • Oracle JD Edwards EnterpriseOne
  • Oracle Logistics Cloud – only Oracle Transportation and Global Trade Management Cloud
  • Oracle Monetization Cloud
  • Oracle NetSuite
  • Oracle Policy Automation
  • Oracle Responsys
  • Oracle SOA Suite
  • Oracle Siebel
  • Oracle Talent Acquisition Cloud
  • Oracle Talent Cloud for Midsize
  • Oracle Utilities
  • Oracle WebLogic JMS
  • REST – compatible with OCI API Gateway and Oracle Functions
  • SAP Ariba
  • SAP Commerce Cloud
  • SAP Concur
  • SAP ERP
  • SAP SuccessFactors
  • SOAP
  • Salesforce Sales Cloud
  • ServiceNow
  • Shopify
  • Slack
  • SurveyMonkey
  • Trello
  • Twilio
  • Twitter
  • UiPath
  • Workday

Third-Party

  • Microsoft Dynamics 365

New Ideas (Contribute!)

  • Oracle B2C Service
  • Oracle WMS Cloud
  • OCI API Gateway
  • Oracle Functions
  • OCI Object Storage
  • Oracle Content and Experience Cloud
  • AWS S3
  • Azure Data Lake Storage
  • Google Cloud Storage
Software

OCI Object Storage Classic Compatibility Matrix

Use Case Console OpenStack Swift API OpenStack Swift CLI OpenStack Swift Client OCI Classic FTM API OCI Classic FTM CLI OCI Classic Java SDK AWS CLI Terraform OCI Classic Provider Terraform OpenStack Provider Terraform AWS Provider s3cmd
Generate Authentication Token N Y Y Y N N N N N N N N
Create/Update Bucket Y Y Y Y Y N Y Y Y Y N Y
List Buckets Y Y Y Y Y Y Y Y N N N N
Delete Bucket Y Y Y Y Y Y Y Y Y Y Y Y
Create/Update Bucket Metadata Y Y Y Y Y Y Y N N Y N N
Retrieve Bucket Metadata Y Y Y Y Y Y Y N N N N N
Delete Bucket Metadata Y Y Y Y Y N Y N N Y N N
Create/Update Object Y Y Y Y Y Y Y N Y Y Y Y
List Objects Y Y Y Y Y Y Y Y N N N Y
Retrieve Object Y Y Y Y Y Y Y Y N N N Y
Delete Object Y Y Y Y Y Y Y Y Y Y Y Y
Create/Update Object Metadata N Y Y Y Y Y Y N N Y N N
Retrieve Object Metadata N Y Y Y Y Y Y Y N N N Y
Delete Object Metadata N Y Y Y Y N Y N N Y N N
Software

How to Delete Object Metadata in OCI Object Storage Classic

OpenStack Swift API w/ Java

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.core.MediaType;

public class OciClassicSample {

  public static void main(String[] args) {
    Client client = ClientBuilder.newClient();

    client.target("https://host/v1/sampleService-sampleIdentityDomain/sampleBucket/sampleObject").request().header("X-Auth-Token", ...).header("X-Remove-Object-Meta-Sample-Key", "").post(Entity.entity("", MediaType.WILDCARD_TYPE));

    client.close();
  }

}

OpenStack Swift API w/ Go

package main

import "gopkg.in/resty.v1"

func main() {
  resty.R().SetHeader("X-Auth-Token", ...).SetHeader("X-Remove-Object-Meta-Sample-Key", "").Post("https://host/v1/sampleService-sampleIdentityDomain/sampleBucket/sampleObject")
}

OpenStack Swift API w/ Node.js

const https = require('https')

var req = https.request({ headers: { 'x-auth-token': ..., 'x-remove-object-meta-sample-key': '' }, hostname: 'host', method: 'POST', path: '/v1/sampleService-sampleIdentityDomain/sampleBucket/sampleObject' })

req.end()

OpenStack Swift API w/ Python

import requests

requests.post('https://host/v1/sampleService-sampleIdentityDomain/sampleBucket/sampleObject', headers = { 'X-Auth-Token': ..., 'X-Remove-Object-Meta-Sample-Key': '' })

OpenStack Swift API w/ Ruby

require 'rest-client'

RestClient.post 'https://host/v1/sampleService-sampleIdentityDomain/sampleBucket/sampleObject', '', :x_auth_token => ..., :x_remove_object_meta_sample_key => ''

OpenStack Swift CLI

1) Configure the CLI:

export ST_AUTH=https://host/auth/v1.0
export ST_USER=sampleservice-sampleidentitydomain:sampleuser
export ST_KEY=samplepassword

2) Run the following command:

swift post samplebucket sampleobject -H "X-Remove-Object-Meta-Sample-Key:"

OpenStack Swift Client

from swiftclient.service import SwiftService

service = SwiftService({ 'auth': 'https://host/auth/v1.0', 'user': 'sampleService-sampleIdentityDomain:sampleUser', 'key': 'samplePassword' })

for res in service.post('sampleBucket', [ 'sampleObject' ], { 'header': [ 'X-Remove-Object-Meta-Sample-Key:' ] }):
  print res

OCI Classic FTM API

import java.util.HashMap;
import java.util.Map;

import oracle.cloudstorage.ftm.FileTransferAuth;
import oracle.cloudstorage.ftm.FileTransferManager;

public class OciClassicSample {

  public static void main(String[] args) {
    FileTransferManager ftm = FileTransferManager.getDefaultFileTransferManager(new FileTransferAuth("sampleUser", "samplePassword", "sampleService", "https://host/", "sampleIdentityDomain"));

    Map<String, String> metadata = new HashMap<String, String>();

    metadata.put("Sample-Key", "");

    ftm.setObjectMetadata("sampleBucket", "sampleObject", metadata, null);

    ftm.shutdown();
  }

}

OCI Classic FTM CLI

Not supported.

OCI Classic Java SDK

import oracle.cloud.storage.CloudStorage;
import oracle.cloud.storage.CloudStorageConfig;
import oracle.cloud.storage.CloudStorageFactory;

public class OciClassicSample {

  public static void main(String[] args) throws Exception {
    CloudStorage storage = CloudStorageFactory.getStorage(new CloudStorageConfig().setServiceName("sampleService-sampleIdentityDomain").setServiceUrl("https://host/").setUsername("sampleUser").setPassword("samplePassword"));

    storage.deleteObjectMetadata("sampleBucket", "sampleObject", "Sample-Key"); // omit the "X-Object-Meta" prefix
   }

}

AWS CLI

Not supported.

Terraform OCI Classic Provider

Not supported.

Terraform OpenStack Provider

1) Configure the provider:

export OS_SWAUTH=true
export OS_AUTH_URL=https://host/
export OS_USERNAME=sampleservice-sampleidentitydomain:sampleuser
export OS_PASSWORD=samplepassword

2) Delete the metadata values from the object configuration.

3) Apply the change.

Terraform AWS Provider

Not supported.

s3cmd

Not supported.

Software

How to Retrieve Object Metadata in OCI Object Storage Classic

OpenStack Swift API w/ Java

import static java.lang.System.out;

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.core.Response;

public class OciClassicSample {

  public static void main(String[] args) {
    Client client = ClientBuilder.newClient();

    Response res = client.target("https://host/v1/sampleService-sampleIdentityDomain/sampleBucket/sampleObject").request().header("X-Auth-Token", ...).head();

    if (res.getStatus() == 200)
      res.getHeaders().forEach((k, v) -> out.println(k + " = " + v));

    client.close();
  }

}

OpenStack Swift API w/ Go

package main

import (
  "fmt"

  "gopkg.in/resty.v1"
)

func main() {
  res, _ := resty.R().SetHeader("X-Auth-Token", ...).Head("https://host/v1/sampleService-sampleIdentityDomain/sampleBucket/sampleObject")

  if res.StatusCode() == 200 {

    for k, v := range res.Header() {
      fmt.Printf("%v = %v\n", k, v)
    }

  }

}

OpenStack Swift API w/ Node.js

const https = require('https')

var req = https.request({ headers: { 'x-auth-token': ... }, hostname: 'host', method: 'HEAD', path: '/v1/sampleService-sampleIdentityDomain/sampleBucket/sampleObject' }, (res) => {

  if (res.statusCode === 200)

    for (k in res.headers)
      console.log(k + ' = ' + res.headers[k])

})

req.end()

OpenStack Swift API w/ Python

import requests

res = requests.head('https://host/v1/sampleService-sampleIdentityDomain/sampleBucket/sampleObject', headers = { 'X-Auth-Token': ... })

if res.ok:
 
  for k, v in res.headers.items():
    print k + ' = ' + v + '\n'

OpenStack Swift API w/ Ruby

require 'rest-client'

res = RestClient.head 'https://host/v1/sampleService-sampleIdentityDomain/sampleBucket/sampleObject', :x_auth_token => ...

if res.code == 200
  res.headers.each {|k, v| puts "#{k} = #{v}" }
end

OpenStack Swift CLI

1) Configure the CLI:

export ST_AUTH=https://host/auth/v1.0
export ST_USER=sampleservice-sampleidentitydomain:sampleuser
export ST_KEY=samplepassword

2) Run the following command:

swift stat samplebucket sampleobject

OpenStack Swift Client

from swiftclient.service import SwiftService

service = SwiftService({ 'auth': 'https://host/auth/v1.0', 'user': 'sampleService-sampleIdentityDomain:sampleUser', 'key': 'samplePassword' })

for res in service.stat('sampleBucket', [ 'sampleObject' ]):
  print res

OCI Classic FTM API

import static java.lang.System.out;

import oracle.cloudstorage.ftm.FileTransferAuth;
import oracle.cloudstorage.ftm.FileTransferManager;
import oracle.cloudstorage.ftm.model.CloudObject;
import oracle.cloudstorage.ftm.model.ObjectMetadata;

public class OciClassicSample {

  public static void main(String[] args) {
    FileTransferManager ftm = FileTransferManager.getDefaultFileTransferManager(new FileTransferAuth("sampleUser", "samplePassword", "sampleService", "https://host/", "sampleIdentityDomain"));

    CloudObject obj = ftm.getObject("sampleBucket", "sampleObject");

    ObjectMetadata metadata = obj.getObjectMetadata();

    metadata.getCustomMetadata().forEach((k, v) -> out.println(k + " = " + v));

    ftm.shutdown();
  }

}

OCI Classic FTM CLI

1) Run the following command:

java -jar ftmcli.jar describe -U sampleuser -A https://host/ -S sampleservice -I sampleidentitydomain --save-auth-key samplebucket sampleobject

OCI Classic Java SDK

import static java.lang.System.out;

import oracle.cloud.storage.CloudStorage;
import oracle.cloud.storage.CloudStorageConfig;
import oracle.cloud.storage.CloudStorageFactory;
import oracle.cloud.storage.model.Key;

public class OciClassicSample {

  public static void main(String[] args) throws Exception {
    CloudStorage storage = CloudStorageFactory.getStorage(new CloudStorageConfig().setServiceName("sampleService-sampleIdentityDomain").setServiceUrl("https://host/").setUsername("sampleUser").setPassword("samplePassword"));

    Key obj = storage.describeObject("sampleBucket", "sampleObject");

    obj.getCustomMetadata().forEach((k, v) -> out.println(k + " = " + v));
   }

}

AWS CLI

1) Create the credentials file:

[default]
aws_access_key_id = sampleservice-sampleidentitydomain
aws_secret_access_key = samplesecretaccesskey

2) Run the following command:

aws s3api head-object --bucket samplebucket --endpoint-url https://host/ --key sampleobject

Terraform

N/A.

s3cmd

1) Create the .s3cfg file:

[default]
host_base = host
host_bucket = host
access_key = sampleservice-sampleidentitydomain
secret_key = samplesecretaccesskey

2) Run the following command:

s3cmd info s3://samplebucket/sampleobject
Software

How to Create/Update Object Metadata in OCI Object Storage Classic

OpenStack Swift API w/ Java

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.core.MediaType;

public class OciClassicSample {

  public static void main(String[] args) {
    Client client = ClientBuilder.newClient();

    client.target("https://host/v1/sampleService-sampleIdentityDomain/sampleBucket/sampleObject").request().header("X-Auth-Token", ...).header("X-Object-Meta-Sample-Key", "Sample Value").post(Entity.entity("", MediaType.WILDCARD_TYPE));

    client.close();
  }

}

OpenStack Swift API w/ Go

package main

import "gopkg.in/resty.v1"

func main() {
  resty.R().SetHeader("X-Auth-Token", ...).SetHeader("X-Object-Meta-Sample-Key", "Sample Value").Post("https://host/v1/sampleService-sampleIdentityDomain/sampleBucket/sampleObject")
}

OpenStack Swift API w/ Node.js

const https = require('https')

var req = https.request({ headers: { 'x-auth-token': ..., 'x-object-meta-sample-key': 'Sample Value' }, hostname: 'host', method: 'POST', path: '/v1/sampleService-sampleIdentityDomain/sampleBucket/sampleObject' })

req.end()

OpenStack Swift API w/ Python

import requests

requests.post('https://host/v1/sampleService-sampleIdentityDomain/sampleBucket/sampleObject', headers = { 'X-Auth-Token': ..., 'X-Object-Meta-Sample-Key': 'Sample Value' })

OpenStack Swift API w/ Ruby

require 'rest-client'

RestClient.post 'https://Host/v1/sampleService-sampleIdentityDomain/sampleBucket/sampleObject', '', :x_auth_token => ..., :x_object_meta_sample_key => 'Sample Value'

OpenStack Swift CLI

1) Configure the CLI:

export ST_AUTH=https://host/auth/v1.0
export ST_USER=sampleservice-sampleidentitydomain:sampleuser
export ST_KEY=samplepassword

2) Run the following command:

swift post samplebucket sampleobject -m "Sample-Key:Sample Value

OpenStack Swift Client

from swiftclient.service import SwiftService

service = SwiftService({ 'auth': 'https://host/auth/v1.0', 'user': 'sampleService-sampleIdentityDomain:sampleUser', 'key': 'samplePassword' })

for res in service.post('sampleBucket', [ 'sampleObject' ], { 'meta': [ 'Sample-Key:Sample Value' ] }):
  print res

OCI Classic FTM API

import java.util.HashMap;
import java.util.Map;

import oracle.cloudstorage.ftm.FileTransferAuth;
import oracle.cloudstorage.ftm.FileTransferManager;

public class OciClassicSample {

  public static void main(String[] args) {
    FileTransferManager ftm = FileTransferManager.getDefaultFileTransferManager(new FileTransferAuth("sampleUser", "samplePassword", "sampleService", "https://host/", "sampleIdentityDomain"));

    Map<String, String> metadata = new HashMap<String, String>();

    metadata.put("Sample-Key", "Sample Value");

    ftm.setObjectMetadata("sampleBucket", "sampleObject", metadata, null);

    ftm.shutdown();
  }

}

OCI Classic FTM CLI

1) Run the following command:

java -jar ftmcli.jar set -U sampleuser -A https://host/ -S sampleservice -I sampleidentitydomain --save-auth-key -C "Sample-Key:Sample Value" samplebucket sampleobject

OCI Classic Java SDK

import oracle.cloud.storage.CloudStorage;
import oracle.cloud.storage.CloudStorageConfig;
import oracle.cloud.storage.CloudStorageFactory;

public class OciClassicSample {

  public static void main(String[] args) throws Exception {
    CloudStorage storage = CloudStorageFactory.getStorage(new CloudStorageConfig().setServiceName("sampleService-sampleIdentityDomain").setServiceUrl("https://host/").setUsername("sampleUser").setPassword("samplePassword"));

    storage.updateObjectMetadata("sampleBucket", "sampleObject", "Sample-Key", "Sample Value");
  }

}

AWS CLI

Not supported.

Terraform OCI Classic Provider

Not supported.

Terraform OpenStack Provider

1) Configure the provider:

export OS_SWAUTH=true
export OS_AUTH_URL=https://host/
export OS_USERNAME=sampleService-sampleIdentity:sampleUser
export OS_PASSWORD=samplePassword

2) Create the configuration:

resource "openstack_objectstorage_object_v1" "sampleobject" {
  name = "sampleobject"
  container_name = "samplebucket"
  content = "Simples Assim"
  metadata {
    Sample-Key = "Sample Value"
  }
}

3) Apply the change.

Terraform AWS Provider

Not supported.

s3cmd

Not supported.

Software

How to Delete an Object in OCI Object Storage Classic

OpenStack Swift API w/ Java

import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;

public class OciClassicSample {

  public static void main(String[] args) {
    Client client = ClientBuilder.newClient();

    client.target("https://host/v1/sampleService-sampleIdentityDomain/sampleBucket/sampleObject").request().header("X-Auth-Token", ...).delete();

    client.close();
  }

}

OpenStack Swift API w/ Go

package main

import "gopkg.in/resty.v1"

func main() {
  resty.R().SetHeader("X-Auth-Token", ...).Delete("https://host/v1/sampleService-sampleIdentityDomain/sampleBucket/sampleObject")
}

OpenStack Swift API w/ Node.js

const https = require('https')

var req = https.request({ headers: { 'x-auth-token': ... }, hostname: 'host', method: 'DELETE', path: '/v1/sampleService-sampleIdentityDomain/sampleBucket/sampleObject' })

req.end()

OpenStack Swift API w/ Python

import requests

requests.delete('https://host/v1/sampleService-sampleIdentityDomain/sampleBucket/sampleObject', headers = { 'X-Auth-Token': ... })

OpenStack Swift API w/ Ruby

require 'rest-client'

RestClient.delete 'https://host/v1/sampleService-sampleIdentityDomain/sampleBucket/sampleObject', :x_auth_token => ...

OpenStack Swift CLI

1) Configure the CLI:

export ST_AUTH=https://host/auth/v1.0
export ST_USER=sampleservice-sampleidentitydomain:sampleuser
export ST_KEY=samplepassword

2) Run the following command:

swift delete samplebucket sampleobject

OpenStack Swift Client

from swiftclient.service import SwiftService

service = SwiftService({ 'auth': 'https://host/auth/v1.0', 'user': 'sampleService-sampleIdentityDomain:sampleUser', 'key': 'samplePassword' })

for res in service.delete('sampleBucket', [ 'sampleObject' ]):
  print res

OCI Classic FTM API

import oracle.cloudstorage.ftm.FileTransferAuth;
import oracle.cloudstorage.ftm.FileTransferManager;

public class OciClassicSample {

  public static void main(String[] args) {
    FileTransferManager ftm = FileTransferManager.getDefaultFileTransferManager(new FileTransferAuth("sampleUser", "samplePassword", "sampleService", "https://host/", "sampleIdentityDomain"));

    ftm.delete("sampleBucket", "sampleObject");

    ftm.shutdown();
  }

}

OCI Classic FTM CLI

1) Run the following command:

java -jar ftmcli.jar delete -U sampleuser -A https://host/ -S sampleservice -I sampleidentitydomain --save-auth-key samplebucket sampleobject

OCI Classic Java SDK

import oracle.cloud.storage.CloudStorage;
import oracle.cloud.storage.CloudStorageConfig;
import oracle.cloud.storage.CloudStorageFactory;

public class OciClassicSample {

  public static void main(String[] args) throws Exception {
    CloudStorage storage = CloudStorageFactory.getStorage(new CloudStorageConfig().setServiceName("sampleService-sampleIdentityDomain").setServiceUrl("https://host/").setUsername("sampleUser").setPassword("samplePassword"));

    storage.deleteObject("sampleBucket", "sampleObject");
  }

}

AWS CLI

1) Create the credentials file:

[default]
aws_access_key_id = sampleservice-sampleidentitydomain
aws_secret_access_key = samplesecretaccesskey

2) Run the following command:

aws s3api delete-object --bucket samplebucket --endpoint-url https://host/ --key sampleobject

Terraform OCI Classic Provider

1) Configure the provider:

export OPC_ENDPOINT=https://host/
export OPC_IDENTITY_DOMAIN=sampleidentitydomain
export OPC_USERNAME=sampleuser
export OPC_PASSWORD=samplepassword

2) If needed, import the object:

terraform import opc_storage_object.sampleobject sampleobject

3) Destroy the object.

Terraform OpenStack Provider

1) Configure the provider:

export OS_SWAUTH=true
export OS_AUTH_URL=https://host/
export OS_USERNAME=sampleservice-sampleidentitydomain:sampleuser
export OS_PASSWORD=samplepassword

2) If needed, import the object:

terraform import openstack_objectstorage_container_v1.sampleobject sampleobject

3) Destroy the object.

Terraform AWS Provider

1) Configure the provider:

provider "aws" {
  endpoints {
    s3 = "https://host/"
  }
  access_key = "sampleservice-sampleidentitydomain"
  secret_key = "samplesecretaccesskey"
  region = "us-east-1" # ignored
  skip_credentials_validation = true
  s3_force_path_style = true
}

2) If needed, import the bucket:

terraform import aws_s3_bucket_object.sampleobject sampleobject

3) Destroy the object.

s3cmd

1) Create the .s3cfg file:

[default]
host_base = host
host_bucket = host
access_key = sampleservice-sampleidentitydomain
secret_key = samplesecretaccesskey

2) Run the following command:

s3cmd del s3://samplebucket/sampleobject