Appearance
storage — 文件存储
storage 模块提供了文件存储功能,支持本地存储和多种云存储服务。
引入方式
javascript
var storage = require("storage")
// 或
var pan = require("pan")支持的驱动
| 驱动 | 说明 |
|---|---|
| local | 本地文件系统 |
| minio / s3 | MinIO / AWS S3 |
| oss / aliyun | 阿里云 OSS |
| cos / tencent | 腾讯云 COS |
| qiniu | 七牛云 |
Builder 构建模式
javascript
var store = storage.Driver("oss")
.Config({
AccessKey: "your-access-key",
SecretKey: "your-secret-key",
Bucket: "your-bucket",
Endpoint: "oss-cn-hangzhou.aliyuncs.com"
})
.Build()API 列表
Upload — 上传文件
javascript
var fileInfo = store.Upload({
Filename: "report.xlsx",
Data: fileBytes,
Path: "reports/2024/"
})Download — 下载文件
javascript
var data = store.Download("reports/2024/report.xlsx")Delete — 删除文件
javascript
store.Delete("reports/2024/report.xlsx")Exists — 检查文件存在
javascript
var exists = store.Exists("reports/2024/report.xlsx")List — 列出文件
javascript
var files = store.List("reports/2024/")Move — 移动文件
javascript
store.Move("reports/old.xlsx", "archive/old.xlsx")Copy — 复制文件
javascript
store.Copy("reports/template.xlsx", "reports/new.xlsx")GetURL — 获取文件 URL
javascript
var url = store.GetURL("reports/2024/report.xlsx")Mkdir — 创建目录
javascript
store.Mkdir("reports/2024/new/")完整示例
javascript
var storage = require("storage")
// 本地存储
var localStore = storage.Driver("local")
.Config({ RootPath: "./uploads" })
.Build()
// 上传文件到本地
var uploadFile = request.File("avatar")
if (uploadFile) {
localStore.Upload({
Filename: uploadFile.filename,
Data: uploadFile.data,
Path: "avatars/"
})
}
// 阿里云 OSS 存储
var ossStore = storage.Driver("oss")
.Config({
AccessKey: env.Get("OSS_ACCESS_KEY"),
SecretKey: env.Get("OSS_SECRET_KEY"),
Bucket: "my-bucket",
Endpoint: "oss-cn-hangzhou.aliyuncs.com"
})
.Build()
// 上传到 OSS
ossStore.Upload({
Filename: "report.xlsx",
Data: file.ReadBytes("./temp/report.xlsx"),
Path: "reports/2024/"
})
// 获取文件 URL
var url = ossStore.GetURL("reports/2024/report.xlsx")
response.Json({ url: url })