To let you organize storage of your data objects, Swarm provides a hierarchy of container objects: cluster, domain, and bucket (shown in white, below).
Clusters
The cluster is the top-level container in your object storage cloud. A cluster can have several storage domains, each organized with its own buckets:
These storage domains and buckets can enforce many business requirements:
Assign permissions
Issue metadata search or listing requests
Account for usage and billing
You can configure your cluster into a storage cloud (such as cloud.com, below) that allows users in one storage domain (my.cloud.com) securely access their content separately from other users:
Domains
A domain is the highest-level container in which you place data objects, and it is the primary way to control access to and grouping of the data.
A cluster administrator creates the domain either using the Swarm Admin Console or programmatically, with an SCSP command. Buckets and data objects must be created in a domain (tenanted), so plan to create your domains first.
Best practices
These actions make your URLs and cURL commands as simple as possible:
Have your DNS map the cluster name to one or more of your Swarm nodes.
Create a storage domain that matches the name of the cluster. This is the default domain if no domain is specified in the SCSP request or if the specified domain does not exist.
See the Naming Rules.
Buckets
Buckets are the required organizing containers for any named objects in a domain. Buckets let you create logical paths to named objects, and they provide a layer of access control.
Each bucket operates as a subdirectory in the domain:
MYDOMAIN/my_bucket/my_document.doc
Note
Buckets are not folders: they cannot be nested in other buckets.
Since named objects only exist within buckets, the bucket must be created prior to storing a named object.
Important
Never write named objects without specifying a bucket (with a path like http://cluster.example.com/testfile.txt
): doing so creates the object as a bucket. Buckets are treated differently, and they are not meant to contain a content body.
When you create a new bucket, the cluster synchronously creates two replicas of the bucket object and then asynchronously creates any additional replicas as determined by a lifepoint header or the scsp.defaultContextReplicas and scsp.maxContextReplicas configuration parameters.
See the Naming Rules.