- Notifications
You must be signed in to change notification settings - Fork254
Zenko CloudServer, an open-source Node.js implementation of the Amazon S3 protocol on the front-end and backend storage capabilities to multiple clouds, including Azure and Google.
License
scality/cloudserver
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
CloudServer (formerly S3 Server) is an open-source Amazon S3-compatibleobject storage server that is part ofZenko,Scality’s Open Source Multi-Cloud Data Controller.
CloudServer provides a single AWS S3 API interface to access multiplebackend data storage both on-premise or public in the cloud.
CloudServer is useful for Developers, either to run as part of acontinous integration test environment to emulate the AWS S3 service locallyor as an abstraction layer to develop object storage enabledapplication on the go.
Learn more atwww.zenko.io/cloudserver
Run your Zenko CloudServer with Docker
In order to contribute, please follow theContributing Guidelines.
Building and running the Zenko CloudServer requires node.js 10.x and yarn v1.17.x. Up-to-date versions can be found atNodesource.
git clone https://github.com/scality/cloudserver.git
Go to the ./cloudserver folder,
yarn install --frozen-lockfile
If you get an error regarding installation of the diskUsage module,please install g++.
If you get an error regarding level-down bindings, try clearing your yarn cache:
yarn cache clean
To use CloudServer, subaclient is needed. This package need typescript to be compiled.
npm install -g typescript
yarn start
This starts a Zenko CloudServer on port 8000. Two additional ports 9990 and9991 are also open locally for internal transfer of metadata and data,respectively.
The default access key is accessKey1 witha secret key of verySecretKey1.
By default the metadata files will be saved in thelocalMetadata directory and the data files will be savedin the localData directory within the ./S3 directory on yourmachine. These directories have been pre-created within therepository. If you would like to save the data or metadata indifferent locations of your choice, you must specify them with absolute paths.So, when starting the server:
mkdir -m 700$(pwd)/myFavoriteDataPathmkdir -m 700$(pwd)/myFavoriteMetadataPathexport S3DATAPATH="$(pwd)/myFavoriteDataPath"export S3METADATAPATH="$(pwd)/myFavoriteMetadataPath"yarn start
If you want to run the Zenko CloudServer with an in-memory backend,you can do so by setting theS3DATA environment variable tomemory.This is useful for testing purposes or when you don't need persistent storage.
export S3DATA=memyarn startexport S3DATA='multiple'yarn start
This starts a Zenko CloudServer on port 8000.The default access key is accessKey1 witha secret key of verySecretKey1.
With multiple backends, you have the ability tochoose where each object will be saved by settingthe following header with a locationConstraint ona PUT request:
'x-amz-meta-scal-location-constraint':'myLocationConstraint'
If no header is sent with a PUT object request, thelocation constraint of the bucket will determinewhere the data is saved. If the bucket has no locationconstraint, the endpoint of the PUT request will beused to determine location.
See the Configuration section in our documentationhereto learn how to set location constraints.
yarn run mem_backend
This starts a Zenko CloudServer on port 8000.The default access key is accessKey1 witha secret key of verySecretKey1.
Note: Vault is proprietary and must be accessed separately.
export S3VAULT=vaultyarn startThis starts a Zenko CloudServer using Vault for user management.
About
Zenko CloudServer, an open-source Node.js implementation of the Amazon S3 protocol on the front-end and backend storage capabilities to multiple clouds, including Azure and Google.
Topics
Resources
License
Contributing
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Uh oh!
There was an error while loading.Please reload this page.
