---
title: Object Storage - Concepts
description: Understand key concepts and features of Scaleway Object Storage.
tags: retention endpoint object-storage storage bucket acl multipart object amazon-s3 retention signature versioning archived
dates:
  validation: 2025-06-09
  posted: 2021-05-26
---
import RegionAndAz from '@macros/console/region-and-az.mdx'
import StorageBucketPolicy from '@macros/storage/bucket-policy.mdx'


## Access control list (ACL)

Access control lists (ACLs) are subresources attached to buckets and objects. They define which Scaleway users have access to the attached object/bucket, and the type of access they have. Whenever a user makes a request to a resource, Amazon S3 checks its ACL and verifies that they have permission to carry out the request.

## Bucket

An Object Storage bucket is a scalable storage container used to store and organize [objects](#object). It allows users to manage large volumes of unstructured data, such as images, videos, and backups, with high durability and accessibility.

Buckets can contain as many objects as you want. Refer to our [dedicated documentation](/object-storage/how-to/create-a-bucket/) for more information.

## Bucket policy

<StorageBucketPolicy />

Bucket policies are assigned to [principals](#principal), who will be allowed or denied access to resources and actions. They can be created and applied using the [CLI](/object-storage/api-cli/create-bucket-policy/) or via the [Scaleway console](/object-storage/how-to/create-bucket-policy/).

## Bucket website

The Bucket website feature enables you to [host static websites directly from your Scaleway Object Storage buckets](/object-storage/how-to/use-bucket-website/). You can serve HTML, CSS, JavaScript, and other static files to your users without needing a separate web server. You can set up a custom domain, configure error pages, and manage routing rules.

## Edge Services

A feature that allows you to create a cache and a custom domain for your buckets. See our [dedicated documentation](/object-storage/how-to/get-started-edge-services/).

## Endpoint

An endpoint represents one end of a communication channel. In the context of Object Storage, two types of endpoints exist:

- The bucket endpoint, in the form of a URL, e.g. `https://my-bucket.s3.nl-ams.scw.cloud` which you use when connecting to your bucket.

    <Message type="tip">
    `https://my-bucket.s3.nl-ams.scw.cloud` represents a virtual-host style endpoint, and `https://s3.nl-ams.scw.cloud/my-bucket` represents a path-style endpoint. Both formats are valid and work with any up-to-date SDK or CLI, though the virtual-host style is generally preferred.
    </Message>

- The Object Storage regional endpoint. The endpoint to use differs depending on the geographical location of the Object Storage platform:

    - Amsterdam, The Netherlands
      - Region: `nl-ams`
      - Endpoint: `https://s3.nl-ams.scw.cloud/`
    - Paris, France
      - Region: `fr-par`
      - Endpoint: `https://s3.fr-par.scw.cloud/`
    - Warsaw, Poland
      - Region: `pl-waw`
      - Endpoint: `https://s3.pl-waw.scw.cloud/`
    - Milan, Italy
      - Region: `it-mil`
      - Endpoint: `https://s3.it-mil.scw.cloud/`

## Legal hold

A legal hold provides the same protection as a retention period, but it has no expiration date. It takes the form of an ON/OFF switch that can be applied to every object in a locked bucket, independently of the lock configuration, or the object retention or its age. It can be applied to objects which are locked. A legal hold remains in place until you explicitly remove it.

Refer to our [dedicated documentation](/object-storage/how-to/use-object-lock/#how-to-manage-object-legal-hold) for more information.

## Lifecycle configuration

A lifecycle configuration is a set of rules that defines actions applied to a group of objects stored on Object Storage. Currently, only the expiration and transition actions are supported on the platform:

- **Expiration** defines when objects expire, to delete objects automatically on your behalf.
- **Transition** defines when objects change their storage class.

Find out more in our how-to on [managing lifecycle rules from the console](/object-storage/how-to/manage-lifecycle-rules/).

## Metrics

A feature that allows you to [monitor your Object Storage consumption](/object-storage/how-to/monitor-consumption/) with a graphical interface from your Scaleway console. Object Storage Metrics provide information about:

- the number of objects in a bucket
- the storage used
- the outgoing bandwidth usage of a bucket

## Multipart uploads

Allows you to [upload large files to the Object Storage platform in multiple parts](/object-storage/api-cli/multipart-uploads/). It is possible to store objects up to 5 TB in size on the platform.

A multipart upload consists of three steps:

- The client initiates the upload to a specific bucket
- The different parts are uploaded
- Object Storage builds the object from the uploaded parts

## Object

An object is a file and the metadata that describes it. Each object has a **key name**, which is a unique identifier (such as `images/photo01.jpg`) within a [bucket](#bucket).

## Object lock

An Amazon S3 API feature that allows users to lock objects to prevent them from being deleted or overwritten. Objects can be put on lock for a specific amount of time or indefinitely. The lock period is defined by the user.

The feature uses a write-once-read-many (WORM) data protection model. This model is generally used in cases where data cannot be altered once it has been written. It provides regulatory compliance and protection against ransomware and malicious or accidental deletion of objects.

Refer to our [dedicated documentation](/object-storage/how-to/use-object-lock/#how-to-manage-object-legal-hold) for more information.

## Object Storage

A storage service based on the Amazon S3 protocol. It allows you to store different types of objects (documents, images, videos, etc.) and distribute them instantly, anywhere in the world. You can upload, download, and visualize stored objects.

Contrary to other storage types such as block devices or file systems, Object Storage bundles the data itself along with metadata [tags](#tags) and a [prefix](#prefix), rather than a file name and a file path.

Read our [quickstart documentation](/object-storage/quickstart/) to get started with Scaleway Object Storage.

## Parts

Parts are individual segments of a larger object that is uploaded in multiple pieces during a multipart upload process. This method divides large uploads into manageable chunks, improving efficiency and reliability. If one part fails, only that part needs to be retried, rather than the entire file. Each part must be uploaded in sequence and identified by a part number, which helps Scaleway Object Storage to reassemble the complete object accurately after all parts have been successfully uploaded.

Refer to the [dedicated documentation](/object-storage/api-cli/multipart-uploads/) for more information on multipart uploads.

## Prefix

A prefix is a string of characters at the beginning of the [object key name](#object). They are often used to organize your data similarly to directories, and to manage object [lifecycle](#lifecycle-configuration). However, prefixes are not directories.

In the context of Scaleway Object Storage, prefixes are used to display folders in the Scaleway console for practical reasons. The `/` character in a prefix is used as a delimiter to allow you to organize your objects hierarchically.

As an example, consider the following objects:

- `images/photo01.jpg`
- `images/photo02.jpg`
- `images/screenshot01.jpg`
- `images/screenshot02.jpg`

Creating a [lifecycle rule](/object-storage/how-to/manage-lifecycle-rules/) based on the `images/` prefix will apply to all objects, whereas a rule based on `images/ph` will only apply to the first two objects.

## Principal

A principal is the target of a [bucket policy](#bucket-policy). They acquire the rights and permissions defined in the policy. The principal of a bucket policy can be an IAM user or application. Bucket policies can have several principals attached to them.

## Region and Availability Zone

<RegionAndAz />

## Retention modes

[Object Lock](#object-lock) provides two modes to manage object retention, **Compliance** and **Governance**. It allows retention settings on individual objects in addition to default retention settings for all objects within a bucket.

- **Compliance**: When this mode is set, an object version cannot be overwritten or deleted by any user. If the Compliance mode is configured for an object, then its retention mode cannot be changed, and its retention period cannot be shortened. In other words, it ensures that an object version cannot be overwritten or deleted for the duration of the retention period.

    <Message type="note">
    When the compliance mode is enabled, it is only possible to overwrite it or delete an object once the Object Lock expires or upon deleting your Scaleway account.
    </Message>

- **Governance**: When this mode is set, all users can alter lock settings.

    The Governance mode nonetheless offers some extra protection before any alterations or deletions can be carried out. Indeed, an object can be permanently deleted only if:
    - A retention rule is applied, the governance retention date must be anterior to the present time
    - The object does not have a Legal Hold in place. If it does, the Legal Hold Status Token must be set to OFF before deletion.
    - When the above criteria are met, you'll be able to use delete-object --version-id to permanently delete an object.

Refer to the [dedicated documentation](/object-storage/how-to/use-object-lock/) for information on how to use object lock.

## Retention period

A retention period specifies a fixed period for which an object remains [locked](#object-lock). During this period, your object is WORM-protected and cannot be overwritten or deleted.

## Amazon S3

Amazon S3 is the most widely known Object Storage protocol. Scaleway Object Storage officially supports a subset of Amazon S3. The list of supported features is described in the [Object Storage API documentation](/object-storage/api-cli/using-api-call-list/).

## Signature V2, Signature V4

When you send HTTP requests to Object Storage, you sign the requests so that we can identify who sent them. You sign requests with your Scaleway access key, which consists of an access key and a secret key. The two main Amazon S3 protocols for authentication are Signature v2 and Signature v4. Signature v4 is more recent and it is the recommended version.

Refer to the [dedicated documentation](/object-storage/api-cli/generate-aws4-auth-signature/) for more information on v4 signature.

## Storage class

You can choose a storage class depending on your use case:

- **Standard Multi-AZ**: suitable for on-demand content like streaming or CDN. The [Standard Multi-AZ](/object-storage/faq/#what-are-the-object-storage-classes-offered-by-scaleway) is available in the Paris, Amsterdam and Warsaw [regions](#region-and-availability-zone).

- **Standard One Zone**: the Standard One Zone class is a good choice for storing secondary backup copies or easily re-creatable data. It is available in [all regions](#region-and-availability-zone).

- **Glacier**: Archived storage - prices are lower, but it needs to be restored first to be accessed. It is available in the `fr-par` and `nl-ams` regions.

<Message type="note">
- The **Standard Multi-AZ** class corresponds to the `STANDARD` Amazon S3 storage class.
- The **Standard One Zone** class corresponds to the `ONEZONE_IA` Amazon S3 storage class.
</Message>

## Tags

Tags are key-value pairs you can assign to your buckets and objects to easily sort them, and for fine-grained access control using [bucket policies](#bucket-policy). Both the key and the value can be customized according to your needs.

## Visibility

Bucket visibility specifies whether the list of objects in a bucket is publicly visible or not. It does not affect the visibility of objects themselves.

Object visibility specifies whether an object is publicly visible or not. It is independent from the visibility of the bucket in which it is stored.

## Versioning

Versioning allows you to keep multiple variants of an object in the same bucket. When [enabled](/object-storage/how-to/use-bucket-versioning/), you can list archived versions of an object or permanently delete an archived version.
