baidu-bcs

0.4.0 • Public • Published

NPM version License Dependency status

baidu-bcs

  • baidu bcs node.js sdk, friendly with co, koa ...

install

npm install baidu-bcs

api

  • putBucket
  • listBucket
  • deleteBucket
  • putObject
  • copyObject
  • putSuperfile
  • getObject
  • headObject
  • listObject
  • deleteObject
  • putAcl
  • getAcl

document

create bcs client

var BCS = require('baidu-bcs');
var bcs = BCS.createClient({
  accessKey: 'access key',
  secretKey: 'secret key'
});
 
/*
 * 可选 option
 *
 * host:     default: bcs.duapp.com,
 * port:     default: 80
 * protocol: default: http:
 * timeout:  default: 300000 // 5 minutes
 * ip:       // 允许上传的ip,默认为空,即:不限制ip
 * time:     // 有效时间
 * size:     // 限制上传最大字节
 * agent:    default: agent.maxSockets = 20
 */

put bucket

bcs.putBucket({
  bucket: '',
  acl: ''
}, function (error, result) {});

put bucket with acl

bcs.putBucket({
  bucket: '',
  acl: ''
}, function (error, result) {});

list bucket

bcs.listBucket(function (error, result) {});

delete bucket

bcs.deleteBucket({
  bucket: ''
}, function (error, result) {});

put object with file path

bcs.putObject({
  bucket: '',
  object: '',
  source: './index.js'
}, function (error, result) {});

put object with buffer

bcs.putObject({
  bucket: '',
  object: '',
  source: new Buffer('baidu-bcs'),
  headers: {
    'Content-Type': 'text/plain'
  }
}, function (error, result) {});

put object with stream

bcs.putObject({
  bucket: '',
  object: '',
  source: fs.createReadStream(__filename),
  headers: {
    'Content-Type': 'text/plain',
    'Content-Length': fs.statSync(__filename).size // important: the 'Content-Type' is must
  }
}, function (error, result) {});

put object with headers

bcs.putObject({
  bucket: '',
  object: '',
  source: './index.js',
  headers: {
    'Content-Type': 'text/javascript'
  }
}, function (error, result) {});

copy object

bcs.copyObject({
  bucket: '',
  object: '',
  sourceBucket: '',
  sourceObject: '',
  headers: {
    'Content-Type': ''
  }
}, function (error, result) {});

head object

bcs.headObject({
  bucket: '',
  object: ''
}, function (error, result) {});

list object

bcs.listObject({
  bucket: '',
  start: 1,
  limit: 1
}, function (error, result) {});

get object

bcs.getObject({
  bucket: '',
  object: '',
}, function (error, result) {});

get object to file path

bcs.getObject({
  bucket: '',
  object: '',
  dest: './xxoo.xo'
}, function (error, result) {});

get object to write stream

var writeStream = fs.createWriteStream('./xxoo.xo')
bcs.getObject({
  bucket: '',
  object: '',
  dest: writeStream
}, function (error, result) {});

delete bucket

bcs.deleteBucket({
  bucket: ''
}, function (error, result) {});

put acl

bcs.putAcl({
  bucket: '',
  acl: 'private'
}, function (error, result) {});

get acl

bcs.getAcl({
  bucket: ''
}, function (error, result) {});

params note

  • bucket - bucket name
  • object - object name
  • headers - http headers
  • sourceBucket - only for copyObject()
  • sourceObject - only for copyObject()
  • the result of callback is a object contain: status, headers, body

use with co or koa

var option = {
  wrapper: 'thunk', // or: promise
  accessKey: '',
  secretKey: ''
};
 
var bcs = BCS.createClient(option);
 
// in co or koa
yield bcs.listBucket();

test

coverage: 97%

License

MIT

Readme

Keywords

Package Sidebar

Install

npm i baidu-bcs

Weekly Downloads

1

Version

0.4.0

License

MIT

Last publish

Collaborators

  • coderhaoxin