Object Management

Introduction

In MinIO, object management refers to the administration of buckets and the objects they contain, including their creation, access control, versioning, replication, and metadata maintenance.


Prerequisites

  • MinIO server



Create a Bucket

In the MinIO Console, navigate to the Buckets tab via the left sidebar, then select the Create Bucket button.


Under Bucket Name, enter the desired name for your bucket and confirm your entry by clicking the Create Bucket button.


If you are using the Virtual Host-Style Method, you must then create a subdomain in the API domain’s DNS zone that matches the bucket’s name and resolves to the IPv4 and IPv6 addresses of the MinIO server.


Example bucket domain: my-test-bucket.api.your-domain.tld


If you manage your DNS zones through our Customer Center, you’ll find all the important information in this Help Center article.



Path Style vs. Virtual Host Style

MinIO supports accessing buckets using either the Path-Style (default) or the Virtual-Host-Style method. However, some applications require or expect the Virtual-Host-Style method, so the following section explains how to switch between the two options.


Changing the access method requires root access. If you have a managed server, please contact our support team so they can make the change for you.

Bucket Access Methods

Method Example
Path-Style .creoline.cloud/bucket-name
Virtual-Host-Style bucket-name.api..creoline.cloud


When using the Virtual Host Style method, you must create a subdomain with the same name for a newly created bucket before using it, so that it resolves to the IPv4 and IPv6 addresses of the MinIO server. see Customizing the MinIO API Domain.

\nTo configure the access method for buckets, first connect to your MinIO server via SSH as the root user. Then run the following command:

nano /etc/default/minio


In the configuration file, you must now insert the following line in an empty space:

MINIO_DOMAIN=api.<server-id>.creoline.cloud

Then save the file with Ctrl + S, exit with Ctrl + X, and restart the MinIO service with the following command:

systemctl restart minio


Of course, you can also use your own domain here and are not limited to our test domains.



Customize the MinIO API Domain


Prerequisites

  • Customization of the corresponding DNS zone
  • MinIO server (For a managed server, please contact our support team)


When using the virtual host style method, the API domain and the admin domain must not be at the same domain level. Let’s assume your main domain is your-domain.tld and the admin domain is admin.your-domain.tld. The API domain must therefore not be your-domain.tld, so it makes sense to create the subdomain api.your-domain.tld in the corresponding DNS zone.


Configure the DNS Zone

If the API and admin domains are to be operated on the same main domain, we recommend using a descriptive subdomain such as api.your-domain.tld to specify the API domain.


If you manage your DNS zones through our Customer Center, you can find all the important information in this Help Center article.

Customize the Nginx Configuration

Connect to your MinIO server via SSH as the root user and enter the following command.

nano /etc/nginx/conf.d/<server-id>.creoline.cloud.conf


In the configuration file, navigate to the section containing the following NGINX server directive for the API domain.


+ means this entry has been added (your desired domain) - means this entry has been removed (our preconfigured domain)
You can also keep our entry here if you wish.

# Nginx Server Directive: API Domain
server {
-   server_name api.<server-id>.creoline.cloud;
+   server_name <your-api-domain.tld>;
    listen 9443;
...
}

Save the file with Ctrl + s and then exit with Ctrl + x.


Next, reload the new NGINX configuration with the following command to ensure the final certificate issuance works correctly:

systemctl reload nginx


The following command renews your Let’s Encrypt certificate so that the new domain is also properly protected:

certbot --nginx --expand -d <your-api-domain.tld> --non-interactive --agree-tos -m <your-email-address>


If you have kept our server_name entry, we recommend also specifying the option -d api.<server-id>.creoline.cloud so that it remains protected by the SSL certificate.

You can then check whether you can successfully establish an encrypted connection via HTTPS by visiting <your-api-domain.tld>.



Customize the MinIO Admin Domain


Prerequisites

  • Customize the corresponding DNS zone
  • MinIO server (For a managed server, please contact our support team)


Configure the DNS Zone

If the API and admin domains are to be operated on the same main domain, please note this warning.


If you manage your DNS zones through our Customer Center, you’ll find all the important information in this Help Center article.

Customize the Nginx Configuration

Connect to your MinIO server via SSH as the root user and enter the following command.

nano /etc/nginx/conf.d/<server-id>.creoline.cloud.conf


In the configuration file, you need to add an entry for the admin domain within the following NGINX server directive.


+ means this entry has been added (your desired domain) - means this entry has been removed (Our preconfigured domain)
You can also keep our entry here if you wish.

# Nginx Server Directive: Admin Domain
server {
-   server_name admin.<server-id>.creoline.cloud;
+   server_name <your-admin-domain.tld>;
    listen 9443;
...
}

Save the file with Ctrl + s and then exit with Ctrl + x.


Next, reload the new NGINX configuration with the following command to ensure that the final certificate issuance works correctly.

systemctl reload nginx


Now you can renew the Let’s Encrypt certificate so that your domain is properly protected.

certbot --nginx --expand -d <your-admin-domain.tld> --non-interactive --agree-tos -m <your-email-address>


If you have kept our server_name entry, we recommend also specifying the option -d admin.<server-id>.creoline.cloud so that this domain remains protected by the SSL certificate as well.

You can then check whether you can successfully establish an encrypted connection via HTTPS by visiting <your-admin-domain.tld>.