Package Exports
- upyun
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (upyun) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
node-upyun
official upyun sdk for node.js
Currently only works with legacy API(the current online API)
Install
$ npm install upyun --saveInit
var upyun = new UPYUN(bucket, operator, password, endpoint, apiVersion);Arguments
bucket: your upyun bucket's name.operator: operator which is granted permisson tobucketpassword: passowrd for the operator which is granted permisson tobucketendpointThe value can be these(leave blank to let sdk auto select the best one):ctccorv1: China Telecomcuccorv2: China Unicomcmccorv3China Mobilev0or any other string: Will usev0.api.upyun.com(auto detect routing)
apiVersion: API version.'legacy': current online api.(currently, it is the default)- when you choose
legacy, it make an instance by upyun-legacy, they have the same methods name as thelatestversion. But the response data may not has the same format. More detail at upyun-legacy/README.md
- when you choose
'latest': the bleeding-edge.(Not available now.)
Example
var UPYUN = require('upyun');
var upyun = new UPYUN('testbucket', 'operatername', 'operaterpwd', 'ctcc', 'legacy');
upyun.getUsage(function(err, result) {
//...
})Response
In this SDK, every api will return a response in the format:
Normal
{
statusCode: 200, // http stats code
headers: {
server: 'nginx/1.1.19',
date: 'Wed, 13 Aug 2014 02:15:27 GMT',
'content-type': 'application/json',
'content-length': '24',
connection: 'close'
}, // response header
data: {
space: 2501,
files: 1
} // response body
}Error catch
When an error occured, the error will be catched, and returned in the response
{
statusCode: 401, // http stats code
error: {
error_code: 40104,
request: 'GET /imgtest',
message: 'Signature error, (signature = md5(METHOD&PATH&DATE&CONTENT_LENGTH&MD5(PASSWORD))).'
}, // error message
headers: {
server: 'nginx/1.1.19',
date: 'Wed, 13 Aug 2014 02:19:07 GMT',
'content-type': 'application/json',
'content-length': '145',
connection: 'close',
'www-authenticate': 'Basic realm="UpYun"'
} // response header
}The different between these two responses is the error and body.
All responses contain http status code and raw response header for futher usage.
Docs
API
Utils
API
### getUsage(callback) To get how many quota has been used.(Unit:`Byte`)Response
{
statusCode: 200,
headers: { ... },
data: {
space: 21754,
files: 50
}
}### listDir(remotePath, [limit], [order], [iter], callback) Get the file list of that dir. The response contains each item's type(file or dir), size(unit: `Byte`), last modify time.
Arguments
remote_dir_pathThe dir path which you want to traverse.limitSpecifies the maximum number of file list output per request.orderSort the file list by 'last_modified' asascordesc.(Default:asc)iterSpecifies the start of iteration.
Response
{
statusCode: 200,
headers: {...
},
data: {
"files": [{
"name": "test",
"type": "folder",
"last_modified": 1412046146
}],
"iter": "g2gCZAAEbmV4dGQAA2VvZg"
}
}### createDir(remotePath, callback) Create a new dir in UPYUN bucket.
Arguments
remotePathThe dir path which you want to create.
### removeDir(remotePath, callback) Delete a dir
remotePathThe dir path which you want to remove.
### uploadFile(remotePath, localFile, type, checksum, [opts], callback) Upload a file into UPYUN bucket.
Arguments
remotePathWhere the file will be stored in your UPYUN bucket.localFileThe file you want to upload. It can be apathstring or the file's raw data.typeSpecifies the file's content-type.checksumSettrueto force SDK send a md5 of local file to UPYUN. Or set a md5value string by yourself.optsThe additional http request headers(JavaScript Object). More detail in Official Docs
### existsFile(remotePath, callback) `HEAD` a path to detect if there is an file.
Arguments
remotePathThe file's path in your UPYUN bucket.
### downloadFile(remotePath, [localPath], callback) Download a file from UPYUN bucket.
Arguments
remotePathThe file's path in your UPYUN bucket.localPathWhere the file will save to. If nolocalPath, the file's content will output directly in the response body.
### removeFile(remotePath, callback) Delete a file from UPYUN bucket.
Arguments
remotePathThe file's path in your UPYUN bucket.
Utils
### setEndpoint(endpoint) Use this method to set api endpoint manually.Arguments
endpointThe value can be these(leave blank to let sdk auto select the best one):ctccorv1: China Telecomcuccorv2: China Unicomcmccorv3China Mobilev0or any other string: Will usev0.api.upyun.com(auto detect routing)
Note
The previous owner of upyun npm package was James Chen
After consultation with James, this package has been transfered to official upyun develop team.
Any futher update and maintenance will conducted by upyun develop team and subsequent versions will not be associated with the original project.
In npm registry, "upyun": "<=0.0.3" were published as node-upyun by James Chen.
Thanks to James Chen for his contribution to UPYUN.