# co-upyun
**Repository Path**: qhl/co-upyun
## Basic Information
- **Project Name**: co-upyun
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2024-11-21
- **Last Updated**: 2024-11-21
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# co-upyun
[](https://www.npmjs.org/package/co-upyun)
[](https://travis-ci.org/lisposter/co-upyun)
[](https://coveralls.io/r/lisposter/co-upyun?branch=master)
__DEPRECATED__, please use [this](https://github.com/lisposter/node-upyun-classic) instead.
__DEPRECATED__, please use [this](https://github.com/lisposter/node-upyun-classic) instead.
__DEPRECATED__, please use [this](https://github.com/lisposter/node-upyun-classic) instead.
An upyun sdk for node.js, which is for co-like interface. Can be used with `koa` or `co`.
# Install
```sh
$ npm install co-upyun
```
# Example
```js
var co = require('co');
co(function *() {
var res = yield upyun.getUsage();
console.log(res);
})();
```
You should always use these methods in your generator function. It works perfectly in TJ's co.
# Usage
## init a UPYUN instance.
```js
var upyun = new UPYUN('bucket', 'username', 'password', 'endpoint');
```
* `bucket`: Your upyun bucket name.
* `username`: Your upyun operator name.
* `password`: Your upyun operator password.
* `endpoint`: api address. It can be `ctcc`, `cucc`, `cmcc`. If you don't specify a endpoint, SDK will choose a fastest api automatically.
* `ctcc` China Telecom
* `cucc` China Unicom
* `cmcc` China Mobile
# Docs
## API
* [`getUsage`](#getUsage)
* [`listDir`](#listDir)
* [`createDir`](#createDir)
* [`removeDir`](#removeDir)
* [`uploadFile`](#uploadFile)
* [`getFileInfo`](#getFileInfo)
* [`downloadFile`](#downloadFile)
* [`removeFile`](#removeFile)
## Utils
* [`setEndpoint`](#setEndpoint)
# API
### getUsage()
To get how many quota has been used.(Unit:`Byte`)
---------------------------------------
### listDir(remote_dir_path)
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_path` The dir path which you want to traverse.
---------------------------------------
### createDir(remote_dir_path, make_dir)
Create a new dir in UPYUN bucket.
__Arguments__
* `remote_dir_path` The dir path which you want to create.
* `make_dir` Auto create parent dir if it isn't exists.(Default: `true`).
---------------------------------------
### removeDir(remote_dir_path)
Delete a dir
* `remote_dir_path` The dir path which you want to remove.
---------------------------------------
### uploadFile(remote_path, file, make_dir, checksum, opts)
Upload a file into UPYUN bucket.
__Arguments__
* `remote_path` Where the file will be stored in your UPYUN bucket.
* `file` The file you want to upload. It can be a `path` string or the file's raw data.
* `make_dir` Auto create parent dir if it isn't exists.(Default: `true`).
* `checksum` Set `true` to force SDK send a md5 of local file to UPYUN. Or set a md5value string by yourself.
* `opts` The additional http request headers(JavaScript Object). More detail in [Official Docs](http://docs.upyun.com/api/http_api/#上传文件)
---------------------------------------
### getFileInfo(remote_path)
Get the file info. The response contains the file type(file or dir), size, create time.
__Arguments__
* `remote_path` The file's path in your UPYUN bucket.
---------------------------------------
### downloadFile(remote_path)
Download a file from UPYUN bucket.
__Arguments__
* `remote_path` The file's path in your UPYUN bucket.
---------------------------------------
### removeFile(remote_path)
Delete a file from UPYUN bucket.
__Arguments__
* `remote_path` The file's path in your UPYUN bucket.
# Utils
### setEndpoint(endpoint)
Use this method to set api endpoint manually.
__Arguments__
* `endpoint` The value can be these(leave blank to let sdk auto select the best one):
* `ctcc` China Telecom
* `cucc` China Unicom
* `cmcc` China Mobile
# Response
For easy to use, all of the apis will return a response in this format:
eg.
```js
{
statusCode: 200,
data: {},
headers: {},
error: {
code: 403,
message: 'Not a valid image file'
}
}
```
__中文文档,请查看 [WIKI](https://github.com/lisposter/co-upyun/wiki).__