Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Table of Contents
minLevel1
maxLevel2
outlinefalse
styledisc
typelist
printabletrue

Note

If you are using Gateway instead of a Swarm Storage node, remove the --post301 --location-trusted cURL options and you must add -u '<gateway username>:<password>' for Gateway authentication.

This document provides instructions for using cURLcommands to interact with SWARM Storage. Commands are organized into categories for creating and managing domains, buckets, objects, and configurations. Replace placeholder terms like hostname and domain with your actual values when executing these commands.

...

Creating Domains and Buckets

Create a Domain

To create a new domain in SWARM Storage, use the following command:

Code Block
languagebash
curl -i --location-trusted --post301 --data-binary "" "http://hostnameipaddress/api?domain=yourDomainNamedomain&createdomain"
  • Purpose: Initializes a new domain.

  • Notes: Replace yourDomainName domain with the desired domain name.

Create a Bucket

To create a bucket within a specified domain, use this command:

Code Block
languagebash
curl -i --location-trusted --post301 -XPOST --data-binary "" "http://hostnameipaddress/api/testbucket?domain=yourDomainNamedomain"
  • Purpose: Sets up a new bucket within the specified domain.

  • Notes: Replace yourDomainName domain with the appropriate domain and testbucket with the bucket name.

...

Uploading Objects

Upload Multiple Objects

To upload multiple objects to a bucket, use the following loop:

Code Block
languagebash
for i in {1..10}; do curl -i --location-trusted -XPOST --post301 --data-binary @yourFileName "http://hostnameipaddress/api/testbucket/NamedObject-$i.txt?domain=yourDomainNamedomain" -u "admin:admin"; done

...

  • Notes: Replace yourFileName with the file you are uploading, and yourDomainName domain with the domain. Adjust the number of iterations ({1..10}) as needed.

Upload a Single Object

To upload a single object to a bucket:

Code Block
languagebash
curl -i --location-trusted --post301 -XPOST --data-binary @yourFileName "http://hostnameipaddress/api/testbucket/NamedObject.txt?domain=yourDomainName"

...

domain"
  • Notes: Replace yourFileName with the file you are uploading, and yourDomainName domain with the domain.

...

  • .

...

Update Cluster Setting

...

Code Block
languagebash
curl -X PUT --header "Content-Type: application/json" --header "Accept: text/plain" -d "{}" "http://hostname:port/api/storage/clusters/_self/settings/ec.conversionPercentage?value=40" --digest -u "admin:password"
  • Purpose: Adjusts the erasure coding conversion percentage.

  • Notes: Replace 40 with the desired percentage, and hostname:port with your cluster's address.

Set Node Setting

To update node-level settings, such as health limits:

Code Block
languagebash
curl -i --location-trusted -X PUT --header "Content-Type: application/json" --header "Accept: text/plain" -d "{}" "http://hostname:port/api/storage/nodes/_self/settings/health.neonatalAgeLimit?value=30" -u "admin:password"
  • Purpose: Configures node settings.

  • Notes: Replace 30 with the desired limit, and hostname:port with the node's address.

...

Managing Objects and Domains

Enable Policy Versioning on a Domain

To enable policy versioning on a domain:

Code Block
languagebash
curl -i --location-trusted -XPUT --post301 --data-binary '' -H "Policy-Versioning: enabled" "http://hostnameipaddress/api?domain=yourDomainNamedomain&replicate=immediate&admin" -u "admin:password"

...

  • Notes: Replace yourDomainName domain with the target domain.

Check Object Integrity

To check the integrity of an object:

Code Block
languagebash
curl -i --location-trusted "http://hostnameipaddress/api/testbucket/ObjectName.txt?domain=yourDomainNamedomain&checkintegrity"

...

  • Notes: Replace ObjectName.txt with the object's name, and yourDomainName domain with the domain.

Capture Manifest of a Version

To capture retrieve the manifest of a specific version of an object:

Code Block
languagebash
curl -i --location-trusted "http://hostnameipaddress/api/testbucket/ObjectName.txt?domain=yourDomainNamedomain&readmanifest&version=versionID"
  • Purpose: Retrieves the manifest for a specified version of an object.

  • Notes: Replace versionID with the version identifier.

List All Information of an EC Object

To list get the detailed information about an erasure-coded object:

Code Block
languagebash
curl -i --location-trusted "http://hostnameipaddress/api/testbucket?domain=yourDomainNamedomain&format=json&name=ObjectName.txt&versions&field=all"

...

  • Notes: Replace ObjectName.txt with the object's name, and yourDomainName domain with the domain.

...

Setting Cluster and Node Configurations

Update Cluster Setting

To update a cluster setting, such as erasure coding conversion percentage:

Code Block
languagebash
curl -X PUT --header "Content-Type: application/json" --header "Accept: text/plain" -d "{}" "http://ipaddress:port/api/storage/clusters/_self/settings/ec.conversionPercentage?value=40" --digest -u "admin:password"
  • Notes: Replace ec.conversionPercentage?value=40 with the desired setting and its value, and ipaddress:port with your cluster's address.

Configure Node Setting

To configure node-level settings, such as health limits:

Code Block
languagebash
curl -i --location-trusted -X PUT --header "Content-Type: application/json" --header "Accept: text/plain" -d "{}" "http://ipaddress:port/api/storage/nodes/_self/settings/health.neonatalAgeLimit?value=30" -u "admin:password"
  • Notes: Replace health.neonatalAgeLimit?value=30 with the desired cluster setting and its value, and ipaddress:port with the node's address.

Additional Operations

Change Admin Password

To change update the admin password for a cluster:

Code Block
languagebash
curl -X PUT --header 'Content-Type: application/json' --header 'Accept: text/plain' 'http://hostnameipaddress:port/api/storage/clusters/_self/administrators/admin?password=newPassword' -u admin:oldPassword
  • Purpose: Updates the admin password for the cluster.

  • Notes: Replace newPassword and oldPassword with the appropriate values.

Set Lifepoint

To set configure the lifepoint for an object:

Code Block
languagebash
curl -v --post301 -XPOST -H 'Content-type: text/html' -H 'lifepoint: [Date] reps=2, deletable=False, [] delete' --location-trusted 'http://hostnameipaddress/api/bucket/lifePointObject?domain=yourDomainName

...

domain'
  • Notes: Replace [Date] with the desired date and yourDomainName format like [Wed, 20 Oct 2025 11:08:00 GMT] and domain with the domain.

Delete a Bucket

To delete remove a bucket and all its contentscontained objects:

Code Block
languagebash
curl -i --location-trusted -XDELETE "http://hostnameipaddress/api/testbucket?domain=yourDomainNamedomain&recursive=now"

...

  • Notes: Replace yourDomainName domain with the domain.

Create an EC Object

To create an erasure-coded object wih the specified encoding:

Code Block
languagebash
curl -i --location-trusted --post301 --data-binary @yourFileName "http://hostnameipaddress/api/testbucket/ec-named-1.txt?domain=yourDomainNamedomain&erasurecoded=yes&encoding=2:2"

...

  • Notes: Replace yourFileName with the file to be used and yourDomainName domain with the domain.

General Tips

  • Replace Placeholders: Always replace hostname ipaddress, domain, yourFileName, and other placeholders with actual values relevant to your environment.

  • Permissions: Ensure that you have the necessary permissions for performing these operations.

  • Security: Use secure methods for handling sensitive information like passwords.

This document provides a structured approach to managing SWARM Storage and Gateway using curl cURL commands. For further details or troubleshooting, refer to the SWARM Storage documentation or your internal support resources.

Info

For Waggle API documentation, please refer to https://docs.cloud.caringo.com/internal/swarm-storage-api.html