Object storage concepts
Object storage is a storage architecture that manages data as objects accessible by URL, rather than as files. It is particularly efficient and scalable for large amounts of unstructured data, such as backups and archives, images and audio and video content, big data, and so on.
This service is compatible with the AWS (Amazon Web Services) Simple Storage Service (S3) API. You can therefore use the Numspot object storage service with any S3-compatible tool.
Buckets
A bucket is a logical resource used to host objects.
Versioning can be enabled on a bucket, so that each new object upload is retained and remains accessible.
Buckets can also be used to:
- Host static websites.
- Store your images and your snapshots.
- Store the access logs of your load balancers.
A bucket name must:
- Be unique across the entire region.
- Contain between 3 and 63 characters.
- Start with an alphanumeric character.
- Contain only lowercase letters, numbers and hyphens (-).
You can configure cross-origin resource sharing (CORS) on your buckets, under your full responsibility. Numspot does not check the validity of CORS rules and cannot be held responsible for unauthorized access resulting from an incorrect configuration. One use case for CORS consists of allowing your website hosted in a bucket A to load files hosted in a bucket B. Without CORS, the browser's same-origin policy would block this loading by default as a security measure.
Objects
An object corresponds to an uploaded file or an uploaded piece of data. You can upload objects into your own buckets or into buckets on which you have write permissions.
An object is identified by a key, which is similar to a name. To organize your objects, you can add a prefix to the key, using the format <PREFIX>/<REST_OF_THE_KEY>. Object storage tools generally group identical prefixes into tree structures, similar to the representation of folders in a file explorer.
You can also add tags to objects in order to identify and classify them more easily.
If you have read permission on an object, you can download that object using a URL.
Objects are not limited in size. The maximum size for a simple (non-partitioned) upload is 5 GiB, but you can perform your uploads in several parts. Therefore, it is recommended to upload files larger than 100 MiB in several parts in order to ensure optimal upload performance.
You can manage the lifecycle of your objects by applying expiration dates to them, after which they are deleted automatically.
ACL and pre-signed URLs
By default, only the creator of an object can access the object. Two features make it possible to make the object accessible to other users:
- Access Control Lists (ACL): An ACL allows you to grant another user read or write permissions on a bucket or an object.
You can grant permissions by specifying S3 user IDs. You can obtain these S3 IDs through the List your buckets and List the objects of a bucket methods.
- Pre-signed URLs: You can generate a pre-signed URL to make an object accessible to anyone who has the link, for a defined period.
API reference
The full reference for the Object Storage API is available in the Scalar OpenAPI documentation.
| S3 API method | s3api command | s3 command | Procedure |
|---|---|---|---|
| AbortMultipartUpload | abort-multipart-upload | / | Abort a multipart upload |
| CompleteMultipartUpload | complete-multipart-upload | / | Complete a multipart upload |
| CopyObject | copy-object | cp or mv | Copy an object into a bucket |
| CreateBucket | create-bucket | mb | Create a bucket |
| CreateMultipartUpload | create-multipart-upload | / | Create a multipart upload |
| DeleteBucket | delete-bucket | rb | Delete a bucket |
| DeleteObject | delete-object | rm | Delete an object from a bucket |
| GetObject | get-object | cp | Download an object |
| ListBuckets | list-buckets | ls | List buckets |
| ListMultipartUploads | list-multipart-uploads | / | List multipart uploads |
| ListObjects | list-objects | ls | List the objects of a bucket |
| ListParts | list-parts | / | List the parts of a multipart upload |
| PutObject | put-object | cp | Upload an object |
| UploadPart | upload-part | / | Upload a part |
AWS CLI compatibility
Numspot Object Storage is compatible with certain features of the AWS CLI (Command Line Interface). Numspot does not guarantee compatibility with all AWS versions or features. An AWS update in January 2025 introduced a new integrity verification mechanism (checksums) for S3 transfers, which is not supported by Numspot. Refer to the technical documentation for the specific limitations.
Recommended versions
To avoid any error (400 Bad Request: trailing checksum is not supported), use one of the following versions:
-
v1.36.40 (latest stable for AWS CLI v1)
-
v2.22.35 (latest stable before checksums were enabled)
-
v2.23.5 or higher (includes conditional checksum handling compatible with Numspot)
Versions to avoid
-
v1.37.0
-
v2.23.0 to v2.23.4
These versions enable checksums without a full bypass option, causing errors with Numspot S3.
Possible workaround
If a version between v2.23.0 and v2.23.4 is used, adding these environment variables can temporarily restore compatibility:
export AWS_REQUEST_CHECKSUM_CALCULATION=WHEN_REQUIRED
export AWS_RESPONSE_CHECKSUM_VALIDATION=WHEN_REQUIRED