Cloud Tools Plugin

OVERVIEW

The Cloud Tools plugin is a multi-cloud toolkit to allow you to easily integrate with many popular online cloud infrastructure services, such as Amazon, Azure, Google Cloud, Rackspace, and other providers offering standards based APIs.  This plugin currently focuses on cloud blob/document storage & compute, but is being enhanced to add other features, such as additional Compute options, Load Balancer support, and more.

The convenience of this plugin is that it provides the exact same API to all the different cloud providers, allowing you to easily integrate with one or all of them.

This plugin is built around the Apache JClouds project, supports Java 9+.

Only interested in cloud storage?

If you are only interested in cloud storage, check out our Cloud Storage Plugin with access to more cloud providers, FTP/SFTP and Java 9+ support.

Cloud Tools Features:

Storage:

  • Connect to any bucket by region, where necessary
  • List objects by bucket/folder
  • Get object details, such as name, date created and modified, etags, and size
  • Add new objects
  • Download object
  • Delete objects

Compute:

  • List nodes/instances
  • Suspend/destroy/resume/reboot/create instances
  • Get instance info, like id, provider, name, tags, and type

BENEFITS

  • Store objects in cloud storage and just maintain a link to them from your Servoy Application
  • Allow each of your customer to connect to their own cloud storage provider by securely storing their access keys, allowing each of your customers access to their cloud files through your app!

COMPATIBILITY

Smart client Headless client Web client Mobile client NG client
8.0+  9+
7.0+  9+ n/a
6.1+  9+ n/a n/a

DOCUMENTATION

We published our API Specifications  online.  Below are some quick examples using the plugin.

var provider = plugins.it2be_cloudtools.newComputeProvider(plugins.it2be_cloudtools.COMPUTE_PROVIDERS.AWS);
provider.setCredentials("yourAwsAccessKeyId", "yourAwsSecretAccessKeyId");
provider.connect();
var nodes = provider.getNodes();
for (var i = 0; i < nodes.length; i++) {
    var obj = nodes[i]
    application.output(obj.id)
    application.output(obj.name)
    application.output(obj.providerId)
    application.output(obj.type)
}
var provider = plugins.it2be_cloudtools.newStorageProvider(plugins.it2be_cloudtools.STORAGE_PROVIDERS.AZURE);
provider.setCredentials("<yourStorageAccountName>", "<yourAccountKey>");
provider.connect()
var objects = provider.listObjects("<bucketName>");
for(var i=0; i<objects.length; i++){
    var obj = objects[i]
    application.output(obj.name)
    application.output(obj.URI)
    application.output(obj.creationDate)
    application.output(obj.lastModified)
    application.output(obj.size)
}

FAQ

What credentials do I use for the cloud providers?
Why doesn't it work in Servoy Developer?

See our Knowledge Base Article Here

UPDATE: The plugin should now also work in Java 9+.  I’ve tested it with Java 14 on the latest Servoy without problems.

Will it work with ngClient or Web Cllient?

Yes, it will run server-side.  So documents will get streamed from the browser to the Servoy Server, and then to the cloud.  Also keep in mind your server needs to run Java 8 or Java 9.

Will it work with the Smart Client?

Yes, but keep in mind the Java dependency if you want the cloud integration to happen client-side.  You may also run the plugin server-side via batch processors, RESTful services, and headless clients.

RELEASE NOTES



BUY NOW

Developer

$400

One developer & unlimited deployment

  • +35% p/y
    maintenance fee

Site

$800

Team of developers & unlimited deployment

  • +35% p/y
    maintenance fee