Ruby client for Blobstores

Copyright (c) 2009-2013 VMware, Inc.

Lets BOSH access multiple blobstores using a unified API.

Usage

bin/blobstore_client_console [<options>]
    -p, --provider PROVIDER Bosh Blobstore provider
    -c, --config FILE       Bosh Blobstore configuration file

Console

To explore the client API for accessing a blobstore, try creating and using a local blobstore:

$ gem install blobstore_client
$ blobstore_client_console -p local -c config/local.yml.example
=> Welcome to BOSH blobstore client console
You can use 'bsc' to access blobstore client methods
> bsc.create("this is a test blob")
=> "ef00746b-21ec-4473-a888-bf257cb7ea21" 
> bsc.get("ef00746b-21ec-4473-a888-bf257cb7ea21")
=> "this is a test blob"
> bsc.exists?("ef00746b-21ec-4473-a888-bf257cb7ea21")
=> true
> Dir['/tmp/local_blobstore/**']
=> ["/tmp/local_blobstore/ef00746b-21ec-4473-a888-bf257cb7ea21"]
> bsc.delete("ef00746b-21ec-4473-a888-bf257cb7ea21")
=> true

Configuration

These options are passed to the Bosh Blobstore client when it is instantiated.

Local

These are the options for the Blobstore client when provider is local:

  • blobstore_path (required) Path for the blobstore

Simple

These are the options for the Blobstore client when provider is simple:

  • endpoint (required) Blobstore endpoint
  • user (optional) Blobstore User
  • password (optional) Blobstore Password
  • bucket (optional, by default resources) Name of the bucket

Amazon S3

These are the options for the Blobstore client when provider is s3:

  • bucket_name (required) Name of the S3 bucket
  • encryption_key (optional) Encryption_key that is applied before the object is sent to S3
  • access_key_id (optional, if not present, the blobstore client operates in read only mode) S3 Access Key
  • secret_access_key (optional, if not present, the blobstore client operates in read only mode) S3 Secret Access Key

Atmos

These are the options for the Blobstore client when provider is atmos:

  • url (required) Atmos URL
  • uid (required) Atmos UID
  • secret (required) Atmos password

OpenStack Swift provider

These are the options for the Blobstore client when provider is swift:

  • container_name (required) Name of the container
  • swift_provider (required) OpenStack Swift provider (supported: hp, openstack and rackspace)

HP Object Storage

These are the options for the Blobstore client when swift_provider is hp:

  • hp_access_key (required) HP Object Storage Access Key
  • hp_secret_key (required) HP Object Storage Secret Key
  • hp_tenant_id (required) HP Object Storage Project ID
  • hp_avl_zone (required) HP Object Storage Availability Zone (region-a.geo-1 or region-b.geo-1)

OpenStack Object Storage

These are the options for the Blobstore client when swift_provider is openstack:

  • openstack_auth_url (required) URL of the OpenStack Identity endpoint to connect to
  • openstack_username (required) OpenStack user name
  • openstack_api_key (required) OpenStack API key
  • openstack_tenant (required) OpenStack tenant name
  • openstack_region (optional) OpenStack region

Rackspace Cloud Files

These are the options for the Blobstore client when swift_provider is rackspace:

  • rackspace_username (required) Rackspace Cloud Files Username
  • rackspace_api_key (required) Rackspace Cloud Files API Key
  • rackspace_region (optional) Rackspace Cloud Files Region (dfw or ord)