纯净的 TypeScript + Bun 七牛云对象存储库,代码放在 src/provider/qiniu。
putObjectheadObjectgetObjectlistObjectsdeleteObjectcopyObjectmoveObjectsignDownloadUrlcreateUploadTokenstatObjectexport QINIU_ACCESS_KEY="xxx"
export QINIU_SECRET_KEY="xxx"
export QINIU_BUCKET="your-bucket"
export QINIU_REGION="cn-south-1"
export QINIU_PUBLIC_DOMAIN="cdn.example.com"
export QINIU_PATH_PREFIX="demo/assets"
export QINIU_USE_HTTPS="true"
bun install
bun run check
bun run dev:tui
这是一个全屏文件管理式 TUI,不是数字菜单。
↑/↓ 或 j/k:移动选择Enter:进入目录,或预览文件Backspace 或 h:返回上级目录g:回到根目录u:刷新n:新建文本文件U:打开本地文件选择器,选中文件后上传到当前目录m:新建目录e:编辑当前文件内容r:重命名 / 移动c:复制d:删除i:查看对象信息s:查看当前浏览会话信息。TUI 启动时会先申请一个前缀级 STS 临时令牌,后续浏览/预览/上传都直接使用它q:退出import { createQiniuOssClient, readQiniuConfigFromEnv } from "./src/provider/qiniu";
const client = createQiniuOssClient(readQiniuConfigFromEnv());
const uploaded = await client.putObject({
key: "hello.txt",
body: "hello qiniu",
contentType: "text/plain",
});
console.log(uploaded.url);
console.log(client.signDownloadUrl({ key: "hello.txt", expiresInSeconds: 600 }));