Docs / Work with files

Upload a file. Get the same file back.
Upload a file. Get the same file back.

Connect an S3 client, upload a file and verify the downloaded bytes match. Run the steps on your own computer.

Before you begin

You need a provisioned customer service and its private credentials. Never enter secret keys into this documentation page.
1
An active customer service
Open your storage service in the WHMCS client area. Its Keldra panel shows the endpoint and service credentials.
2
A private bucket
If your product includes a starting bucket, use that bucket. Otherwise open Create a bucket in the Keldra service panel and choose Create private bucket. Note its exact name.
3
Your chosen S3 client
For command-line steps, install AWS CLI v2 or curl with AWS Signature Version 4 support. Use a local shell; these commands use POSIX shell syntax.

1. Configure your client

Create an S3-compatible connection in your application. Set endpoint https://eu-west-1.keldra.store, region eu-west-1, and the S3 access key and secret from your WHMCS service. Select path-style addressing if your client asks. Open your private bucket by its exact name.
Expected: your client connects and can open the authorised bucket. Save secrets only in the application’s protected credential store.

2. Upload a file

Create a small text file on your computer and upload it to the private bucket. Keep the local original unchanged.
Expected: the client reports a completed upload and displays the new object in the bucket.

3. Download it

Download that object to a different local filename or directory. Do not overwrite the original yet.
Expected: the client reports a completed download and you can open the downloaded file.

4. Verify the result

Use your operating system’s file comparison or checksum tool to compare the downloaded file with the original. Opening a file alone does not verify every byte.
Expected: matching bytes or matching cryptographic checksums. On Linux or macOS, cmp original.txt downloaded.txt should print nothing and exit with status 0.

Your completion checklist

Mark what you have verified yourself. These page-local checkboxes do not run commands or inspect your storage.

Need help?

Access denied or unable to connect?
Check the complete endpoint, eu-west-1 region and exact bucket name. Confirm the service is active and the key pair belongs to that service. Review configured bucket permissions. Do not make the bucket public to work around a credential error.
The files differ?
Confirm you downloaded the same object key into downloaded.txt, not an error response or an older local file. Repeat the download and compare again. Keep both files until you understand the difference.

Next goal: move an existing bucket

Inventory the source first, configure destination permissions and indexes, and check transfer charges. To export current originals from your configured bucket to a local directory, use the command below. Version history and permission/index configuration need separate migration steps.
aws --profile keldra --endpoint-url "$S3_ENDPOINT" \ s3 sync "s3://$BUCKET/" ./export/

Next goal: control who can access data

Start private. Give each service its own credentials, then configure groups, roles and resource permissions for applications that need finer-grained access. Test both an allowed and denied identity.

Manage customer services

Use the module’s service controls in WHMCS to suspend, restore or terminate access. Suspension blocks new authentication; existing sessions can last until expiry. Termination revokes service credentials without automatically deleting stored files.

Your goal

Upload a file to your private bucket and get the same file back. Complete the checklist only after checking the results on your computer.
Where are my credentials?
Open your storage service in the WHMCS client area. Use that service’s S3 credentials, not your WHMCS login. For AWS CLI, configure them locally with:
aws configure --profile keldra
Troubleshoot this tutorial →