Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ryouaki/nodejs-swiftclient
The promise support client for openstack with nodejs
https://github.com/ryouaki/nodejs-swiftclient
client nodejs openstack-swift promise
Last synced: about 1 month ago
JSON representation
The promise support client for openstack with nodejs
- Host: GitHub
- URL: https://github.com/ryouaki/nodejs-swiftclient
- Owner: ryouaki
- License: mit
- Created: 2019-01-25T02:54:11.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2023-01-04T21:50:19.000Z (almost 2 years ago)
- Last Synced: 2024-10-05T02:21:19.440Z (about 1 month ago)
- Topics: client, nodejs, openstack-swift, promise
- Language: JavaScript
- Homepage:
- Size: 1.07 MB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![npm downloads](https://img.shields.io/npm/dm/swift-nodeclient.svg?style=flat-square)](http://npm-stat.com/charts.html?package=swift-nodeclient)
# swift-nodeclient
The promise support client for openstack with nodejs# How to use it.
[example](/example/index.js)# How to install it.
```sh
$ npm i swift-nodeclient -save
```# How to run the example.
```sh
$ node ./example/index.js
```# API
```js
const client = new NodeSwift({
host: "127.0.0.1", // the location of swift server, if not assign port ,will only use host option.
port: 12345, // the port of swift server
authUrl: '' // the auth url .default /auth/v1.0
});
/**
* Login
*
* @param {String|required} account
* @param {String|required} user
* @param {String|required} password
*
* @return {Promise} success
* {
* status: 'ok',
* msg: null
* }
* @return {Promise} failed
* {
* status: 'ng',
* msg: {...}
* }
*/
await client.login({
account: 'test',
user:'tester',
password:'testing'
}).then((d) => {
printObj(d);
}).catch((e) => {
printErr(e);
})
/**
* Get Container list
*
* @return {Promise} success
* {
* "status": "ok",
* "msg": {
* "bytesUsed": "545636",
* "containerCount": "2",
* "objectCount": "2",
* "data": [
* "test",
* "test1"
* ]
* }
* }
* @return {Promise} failed
* {
* status: 'ng',
* msg: {...}
* }
*/
await client.getContainers().then((d) => {
printObj(d);
}).catch((e) => {
printErr(e);
})/**
* Create a new Container
*
* @param {String|required} container
*
* @return {Promise} success
* {
* status: 'ok',
* msg: null
* }
* @return {Promise} failed
* {
* status: 'ng',
* msg: {...}
* }
*/
await client.newContainer('test').then((d) => {
printObj(d);
}).catch((e) => {
printErr(e);
})/**
* Create a new Container
* for option items ref: https://docs.openstack.org/swift/latest/overview_acl.html#container-acls
*
* @param {String|required} container
* @param {Object|option} { headers: {'X-Container-Read': '.r:* | .r:' } }
*
* @return {Promise} success
* {
* status: 'ok',
* msg: null
* }
* @return {Promise} failed
* {
* status: 'ng',
* msg: {...}
* }
*/
await client.newContainer('test1', {
headers: {
'X-Container-Read': '.r:*'
}
}).then((d) => {
printObj(d);
}).catch((e) => {
printErr(e);
})/**
* Delete a Container
*
* @param {String|required} container
*
* @return {Promise} success
* {
* status: 'ok',
* msg: null
* }
* @return {Promise} failed
* {
* status: 'ng',
* msg: {...}
* }
*/
await client.delContainer('test1').then((d) => {
printObj(d);
}).catch((e) => {
printErr(e);
})/**
* Create a text Object
*
* @param {String|required} container
* @param {String|required} object
* @param {String|Stream|required} data
* @param {Object|option} { headers: {'Content-Type': 'text/html' } }
*
* @return {Promise} success
* {
* status: 'ok',
* msg: null
* }
* @return {Promise} failed
* {
* status: 'ng',
* msg: {...}
* }
*/
await client.newObject('test', 'object1', 'hello world', {
headers: {
'Content-Type': 'text/html'
}
}).then((d) => {
printObj(d);
}).catch((e) => {
printErr(e);
})const stream = fs.createReadStream('./example/WechatIMG127.jpeg');
/**
* Create a text Object
*
* @param {String|required} container
* @param {String|required} object
* @param {String|Stream|required} data
* @param {Object|option} { headers: {'Content-Type': 'image/jpeg' } }
*
* @return {Promise} success
* {
* status: 'ok',
* msg: null
* }
* @return {Promise} failed
* {
* status: 'ng',
* msg: {...}
* }
*/
await client.newObject('test', 'object2', stream, {
headers: {
'Content-Type': 'image/jpeg'
}
}).then((d) => {
printObj(d);
}).catch((e) => {
printErr(e);
})/**
* Update a Object
*
* @param {String|required} container
* @param {String|required} object
* @param {String|Stream|required} data
* @param {Object|option} { headers: {'Content-Type': 'image/jpeg' } }
*
* @return {Promise} success
* {
* status: 'ok',
* msg: null
* }
* @return {Promise} failed
* {
* status: 'ng',
* msg: {...}
* }
*/
await client.updateObject('test', 'object1', 'hello world two', {
headers: {
'Content-Type': 'text/html'
}
}).then((d) => {
printObj(d);
}).catch((e) => {
printErr(e);
})/**
* Get object list
*
* @param {String|required} container
*
* @return {Promise} success
* {
* "status": "ok",
* "msg": {
* "bytesUsed": "545636",
* "objectCount": "2",
* "data": [
* "test",
* "test1"
* ]
* }
* }
* @return {Promise} failed
* {
* status: 'ng',
* msg: {...}
* }
*/
await client.getObjects('test').then((d) => {
printObj(d);
}).catch((e) => {
printErr(e);
})/**
* Delete a Object
*
* @param {String|required} container
* @param {String|required} object
*
* @return {Promise} success
* {
* "status": "ok",
* "msg": null
* }
* @return {Promise} failed
* {
* status: 'ng',
* msg: {...}
* }
*/
await client.delObject('test', 'object1').then((d) => {
printObj(d);
}).catch((e) => {
printErr(e);
})/**
* copy a Object to a new path
*
* @param {String|required} fromContainer
* @param {String|required} fromobject
* @param {String|required} toContainer
* @param {String|required} toObject
*
* @return {Promise} success
* {
* "status": "ok",
* "msg": null
* }
* @return {Promise} failed
* {
* status: 'ng',
* msg: {...}
* }
*/
await client.copyObject('test', 'object2', 'test1', 'object1').then((d) => {
printObj(d);
}).catch((e) => {
printErr(e);
})
```