记录一下周末写的 COS 命令行工具
- 作者:Bougie
- 创建于:2019-11-04
- 更新于:2023-03-09
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。COS 提供网页端管理界面、多种主流开发语言的 SDK、API 以及命令行和图形化工具,并且兼容 S3 的 API 接口,方便用户直接使用社区工具和插件。
# Installation
npm i @bougiel/cos -g
# CLI
# 配置创建 - cos config
目前可用的配置有:
cos config SecretId xxx
- 配置 SecretIdcos config SecretKey xxx
- 配置 SecretKeycos config AppId xxx
- 配置 AppId,即将废弃,只用创建 Bucket 的时候会用到cos config Bucket xxx
- 选择一个 Bucket,操作一个 Bucket 里面的对象时需要提前配置cos config Region xxx
- 配置选择的 Bucket 区域
查看配置列表:
cos config --list
# 存储桶操作 - cos bucket
使用前需要提前配置 SecretId
和 SecretKey
, 目前支持的命令有:
cos bucket
- 查看所有 Bucket 列表cos bucket create xxx --region ap-beijing
- 创建一个 Bucket ,需要提前配置 AppIdcos delete xxx
- 删除一个空的 Bucket
# 对象操作 - cos object
使用前需要提前配置 Bucket
和 Region
,切换 Bucket 时需要重新配置 Bucket
和 Region
,目前支持的命令有:
cos object --list
- 查看所有对象cos object upload .
- 上传一个文件(夹),相对于当前目录
# Node API
# COS
- Base class, unexported
export interface IConfig {
SecretKey: string
SecretId: string
}
export declare class COS {
cos: any
config: IConfig
constructor(config: IConfig)
}
# COSBucket
d.ts
file:
import { COS } from './COS'
export declare class COSBucket extends COS {
list(region?: string): any
create(bucketName: string, appId: string, region?: string): any
delete(bucketName: string, region?: string): any
}
const { COSBucket } = require('@bougiel/cos')
const bucket = new COSBucket({ SecretId, SecredKey })
// 查看所有 Bucket
bucket.list(region).then(console.table)
// 创建一个 Bucket
bucket.create('test', '1234', 'ap-beijing')
// 删除一个 Bucket
bucket.delete('test-1234', 'ap-beijing')
# COSObject
d.ts
file:
import { COS, IConfig } from './COS'
interface IObjectConfig extends IConfig {
Bucket: string
Region: string
}
export declare class COSObject extends COS {
bucketName: string
region: string
constructor(params: IObjectConfig)
list(prefix?: string): any
upload(uploadPath: string): any
}
export {}
const { COSObject } = require('@bougiel/cos')
const object = new COSObject({ SecretId, SecredKey, Bucket, Region })
// 查看所有 object
object.list().then(console.table)
// 上传一个文件(夹)
object.upload(path.resolve(__dirname, '../dist'))