NebStore

NebStore is designed with simplicity and reliability in mind - we deliver a dependable and expandable cloud storage solution for your data storage requirements.


Data in NebStore is structured in 2 layers: buckets and objects.

Folder management is coming soon! Check out the Roadmap for more details.

Storage buckets

  • A bucket is persistent object storage that is constantly available and automatically scales with your usage.
  • Your organization can create, view, or manage storage buckets depending on the roles each user has. Learn more about Roles and permissions in the Onboarding guide.
  • Each bucket has a unique ID called Nebula resource name.
  • Each bucket has a direct Bucket URL. You can set this URL to be public or private during bucket creation.

Enable public access if you want to deliver and share objects externally. Public access means that all objects within a bucket are accessible.

Objects

  • Objects are files that you upload to a storage bucket.
  • Your organization can upload, access, or manage objects depending on the roles each user has. Learn more about Roles and permissions in the Onboarding guide.
  • Objects inherit the access type of the bucket they are in. Public or private access to objects depends on the setting you choose when you create a bucket.

An example: if you want to store your website’s image assets in NebStore, you can use a bucket with public access, or use a private bucket to share files using signed URLs.


Create storage buckets

You have 3 ways to create buckets.

The easiest tool for using NebStore is the Nebula Console, with a clear interface for bucket and object managment, usage metrics and access controls.

Creating a NebStore bucket only takes a couple of steps:

NebStore bucket creation flow

The Console guides you through these steps:

  1. Name your bucket

    These are the naming conventions for a NebStore bucket:

    • The name has to be globally unique.
    • Only numbers and characters are allowed. Special charaters will be stripped.
    • The name cannot be longer than 25 characters.
  2. Enable public or private access

    Enable public access if you want to deliver and share objects. Public access applies to all objects within a bucket.

    Use signed URLs to access or share objects in private buckets.

  3. Enable versioning - coming soon

    Versioning enables you to keep and access multiple versions of the same object in your storage bucket. Versioning applies to all objects in a bucket.

You're done! You can now access the storage bucket and start uploading objects.

You can also create buckets using the NebStore API, through the Create bucket endpoint, and also programmatically via the NebStore SDK.


Upload objects

Once you create a bucket, you can upload objects in 3 ways:

  1. Through the Console:

    • Open your new bucket and click on Add object
    • Select the files you want to upload
  2. Using the NebStore API, through the Upload object endpoint

  3. Programmatically via the NebStore SDK

The Console allows bulk file upload. Simply select multiple files from your device.

Nebula buckets accept objects regardless of file type or size. Large files are automatically uploaded in chunks.

There is a limitation though: you cannot extract archives or unpack image files after they are uploaded to a Nebula bucket.

  • After objects are uploaded, you can view metrics like number of objects, average object size, and total bucket size for every bucket. This forms the basis of your usage and billing.
  • Open an object in Console to view the properties. This is where you can find each object’s direct URL.

Download objects

You can download objects in 4 ways:

  1. Directly from the Console
  2. Using the NebStore API, through the URL returned in the location field from the Get object or List all objects endpoints
  3. Programmatically via the NebStore SDK
  4. Using an object's direct URL.

You can use an object’s URL to access or share it directly, or embed it in your website.

If you want to deliver and share objects externally from a private bucket, you must use signed URLs.

Access objects in private buckets

Nebula enables you to provide secure and direct access to objects in private buckets.

You must use signed URLs with a token that is unique to every private storage bucket. You can find this access token in 2 places:

A token is created when you create a private bucket, or set a public bucket to private.

If you set a private bucket to public, the token becomes invalid. If you set the same bucket to private again, a new token is created.

To create a signed URL, you need:

  1. the object's direct URL
  2. the access token

Simply append ?token={token value} after the object's URL like this:

https://cdn.usenebula.io/{bucket-name}/{object-key}?token={token-value}

Signed URL example

https://cdn.usenebula.io/okr-neb-my-secret-bucket/image.jpg?token=zf3ae3b1-7da2-41e3-82d4-497815c41234

Migrate your objects

Thinking about moving your objects from a different provider to Nebula? The easiest way to migrate is using bulk file upload through the Console, or through the NebStore SDK, which enables you to do this programmatically.

To move objects from your current storage into your Nebula storage bucket using the Console, follow these steps:

  1. Download objects from your previous storage provider.
  2. When creating storage buckets on Nebula, define your bucket structure keeping in mind that every bucket is similar to a standalone folder.
  3. Upload files from your local environment.
  4. You’re done!

To move objects using the NebStore SDK, take a look at how object upload works in the SDK documentation here.


Manage buckets and objects

Use the Storage page in the Console to manage your buckets. You can:

  • Update access type
  • Empty bucket
  • Delete bucket

Nebula only allows deleting buckets that are empty.

For each object in your bucket, you can:

  • Copy the object URL
  • Open the object
  • Download the object
  • Delete the object

You can also use the NebStore API and the NebStore SDK to perform the same operations programmatically.


Usage and billing

NebStore prices are based the cumulative size of objects stored within your instance over time, per month. Nebula only bills you after you actually start storing objects in the resource you created.

Your usage and billing for NebStore is grouped on a project level. You can check the billing status, costs and usage over time for all buckets within a project through the Projects page.

We are working on a core Billing page in Console, which will give you even more visibility and control over your billing and usage. You will be able to see detailed costs and usage for every storage bucket you have across all of your projects. Check out the Roadmap for more details.


Need help?

If you have any technical questions or encounter any problems, get in touch with our Support team! We are here to help, and welcome any feedback you might have about NebStore.