Skip to content

storage — 文件存储 ​

storage 模块提供了文件存储功能,支持本地存储和多种云存储服务。

引入方式 ​

javascript
var storage = require("storage")
// 或
var pan = require("pan")

支持的驱动 ​

驱动说明
local本地文件系统
minio / s3MinIO / 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 })

版权所有.