"osapi" or "ceph"
Common and CEPH Compatible Object Storage API
Other Languages / 简体中文 / 繁體中文
If links in this document not avaiable, please access README on GitHub directly.
Milestone version 1.0.0 is released. The package now can be used to access different object storage servers.
Table of Contents
Description
The name osapi is abbreviation of Object Storage Application Programming Interface. And, because this API is compatible with CEPH object storage, so it is also named ceph. You may install and require one of osapi
and ceph
at your will. For simplicity, we use osapi
hereinafter.
osapi is based on OpenStack SWIFT API and Amazon S3 API. Before osapi@1.0.0, the package offers a standalone sub module for each style. Since 1.0.0, the two sub modules are nearly compatible with each other. Both of them implements a common interface Connection.
Table Of Contents
Links
Get Started
const osapi = require('osapi');
let conn = osapi.createConnection({
endPoint : 'http://storage.example.com/',
subuser : 'userName:subUserName',
key : '380289ba59473a368c593c1f1de6efb0380289ba5',
container : 'containerName',
});
conn.createObject('hello/world', 'Hello world!', (err) => {
});
conn.readObject('hello/world', (err, data) => {
data.contentType;
data.buffer;
});
Get Started With OpenStack Swift Server
const swift = require('osapi/swift');
let conn = new swift.Connection({
endPoint : 'http://storage.example.com/',
subuser : 'userName:subUserName',
key : '380289ba59473a368c593c1f1de6efb0380289ba5',
tempURLKey : '380289ba59473a368c593c1f1de6efb0',
container : 'containerName',
});
conn.createObject('hello/world', 'Hello world!', (err) => {
});
conn.readObject('hello/world', (err, data) => {
data.contentType;
data.buffer;
});
Get Started With AWS S3 Server
const s3 = require('osapi/s3');
let conn = new s3.Connection({
endPoint : 'http://storage.example.com/',
accessKey : '380289ba59473a368c59',
secretAccessKey : '380289ba59473a368c593c1f1de6efb0380289ba5',
bucket : 'bucketName',
});
let options = {
name: 'hello/world',
meta: { }
};
let content = 'Hello world!';
conn.createObject(options, content)
.then(ret => {
})
.catch(err => {
});
conn.readObject('hello/world', (err, data) => {
data.contentType;
data.buffer;
data.meta;
});
API
Please read documentation.
Terms
Amazon Simple Storage Service (S3) and OpenStack Swift are similiar but still two different things.
S3 | SWIFT | meaning |
---|
bucket | container | An container belongs to one account and is used to store objects. |
access_key | - | Unique token used to identify an account. |
secret_secret_key | - | Secret token accompanying the access_key and used to verify the requests. |
- | key | Secret token used to generate access token for current subuser. |
- | temp_url_key | Secret token used to generate temporary downloading URLs for objects. |
- | user | Account. |
- | subuser | User under specified account. |
About
For convenience, this package is published in following names (alias):
References