Python
This example demonstrates how to connect to Nebula Block (an S3-compatible service) and perform basic operations like listing buckets, uploading, downloading, and generating a presigned URL using the AWS SDK for Python boto3.
Prerequisites
Before running the code, ensure you have the following:
Create an object storage bucket on the Nebula Block platform, then navigate to the corresponding page to obtain the storage access credentials.

Python installed.
boto3 and python-dotenv libraries installed. You can install them using pip:
pip install boto3 python-dotenvCreate a
.envfile with your Nebula Block credentials:NEBULA_ACCESS_KEY=YOUR_ACCESS_KEY #Use the Access Key from the Details page. NEBULA_SECRET_KEY=YOUR_SECRET_KEY #Use the Secret Key from the Details page. NEBULA_ENDPOINT=YOUR_ENDPOINT_URL #Use the Hostname from the Details page. NEBULA_REGION=YOUR_REGION #Optional, default None. NEBULA_BUCKET=YOUR_BUCKET_NAME
Python Code
Common Usage Examples
Create/Delete Bucket Demo
Upload/Download File Demo
Explanation
Steps in the Code
Credentials: The program uses
boto3.client()to authenticate with the S3-compatible service using the provided access key and secret key. Ensure to replaceYOUR_ACCESS_KEYandYOUR_SECRET_KEYwith your actual credentials.Client Configuration: The
boto3.client()is configured with the endpoint and region of the S3-compatible service. Thesignature_version='s3v4'ensures the use of S3 v4 signature for secure requests.Test Connection: Tests if the client can successfully list the buckets to verify the connection.
Create Bucket: The script attempts to create the specified bucket. If the bucket already exists, it will proceed without error.
Upload a File: Uploads a test file from the local system to the specified bucket in Nebula Block storage.
Download a File: Downloads the uploaded test file from Nebula Block storage to the local system to verify successful upload.
List Objects: Lists all objects in the specified bucket to confirm the file was uploaded.
Presigned URL Generation: Generates a temporary URL for downloading the uploaded object without needing further authentication.
Cleanup: Deletes the local temporary test files after completing the demonstration.
Run the Code
To run the program, simply execute the script as a standard Python application:
Make sure to have the boto3 and python-dotenv libraries installed and your .env file properly configured with your Nebula Block credentials.
Note: Ensure that you keep your access keys secure. Do not hardcode them in production code. Always use environment variables or secret managers.
Last updated