Access Storage with AWS S3 SDKs
CloudBit Object Storage is an S3-compatible object storage service that lets you store and serve large amounts of data.
The CloudBit Object Storage API is inter-operable with the AWS S3 API, meaning you can use existing S3 tools and libraries with Spaces. A common use case is managing CloudBit Object Storage programmatically with AWS’ S3 SDKs.
Install the AWS SDK using the package manager for your language of choice.
Java Script
Go
PHP
Python
Ruby
npm install aws-sdk
go get -u github.com/aws/aws-sdk-go
php composer.phar require aws/aws-sdk-php
pip install boto3
gem install aws-sdk-s3
You are able to retrieve the access & secret keys in our customer portal:
The examples below rely on environment variables to access these keys. Export
ACCESS_KEY
and SECRET_KEY
to your environment (e.g. export ACCESS_KEY=DSJE2334JAS
) to make them available to your code.After you set up and configure an SDK, you can follow the examples below to see how to perform common CloudBit Object Storage operations in JavaScript, Go, PHP, Python and Ruby.
Java Script
Go
PHP
Python
Ruby
const AWS = require('aws-sdk');
const fs = require('fs'); // Needed for example below
const spacesEndpoint = new AWS.Endpoint('<S3-ENDPOINT>');
const s3 = new AWS.S3({
endpoint: spacesEndpoint,
accessKeyId: process.env.ACCESS_KEY,
secretAccessKey: process.env.SECRET_KEY
});
package main
import (
"os"
// Additional imports needed for examples below
"fmt"
"io"
"strings"
"time"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/s3"
)
func main() {
key := os.Getenv("ACCESS_KEY")
secret := os.Getenv("SECRET_KEY")
s3Config := &aws.Config{
Credentials: credentials.NewStaticCredentials(key, secret, ""),
Endpoint: aws.String("https://<ENDPOINT>"),
Region: aws.String("us-east-1"),
}
newSession := session.New(s3Config)
s3Client := s3.New(newSession)
// ...
This SDK requires the
region
to be us-east-1
, an AWS region name, to successfully create a new Bucket. The CloudBit Object Storage datacenter region is based on the
<ENDPOINT> value.<?php
// Included aws/aws-sdk-php via Composer's autoloader
require 'vendor/autoload.php';
use Aws\S3\S3Client;
$client = new Aws\S3\S3Client([
'version' => 'latest',
'region' => 'us-east-1',
'endpoint' => 'https://<ENDPOINT>',
'credentials' => [
'key' => getenv('ACCESS_KEY'),
'secret' => getenv('SECRET_KEY'),
],
]);
import os
import boto3
session = boto3.session.Session()
client = session.client('s3',
region_name='nyc3',
endpoint_url='https://<ENDPOINT>',
aws_access_key_id=os.getenv('ACCESS_KEY'),
aws_secret_access_key=os.getenv('SECRET_KEY'))
require 'aws-sdk-s3'
client = Aws::S3::Client.new(
access_key_id: ENV['ACCESS_KEY'],
secret_access_key: ENV['SECRET_KEY'],
endpoint: 'https://<ENDPOINT>',
region: 'us-east-1'
)
Please replace the <ENDPOINT> place holder with the correct endpoint:
Location BIT1: os.bit1.cloudbit.ch
Last modified 3yr ago