Skip to content

纯前端实现多种云储存便捷文件上传JS库。支持CDN引入,简单配置即可使用。原理是调用个人部署的Alist接口,从而无需自己实现后端,可手动在服务端控制角色权限。附带详细的上传进度、速率、上传完毕预计时间等数据反馈。

License

Notifications You must be signed in to change notification settings

4444TENSEI/AlistUploaderJS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Logo

AlistUploaderJS

纯前端调用Alist API往多种云储存上传文件,需要自行部署Alist并至少添加一个在线储存(只要是在Alist客户端支持上传的储存)。实现的功能包括:目录创建、多文件上传,例如webdav、各类云盘,推荐CDN在线引入,方便集成到小型个人项目。



版本v0.1.3-使用示例(HTML):


使用教程

CDN引入

<script src="https://testingcf.jsdelivr.net/gh/4444TENSEI/[email protected]/npm/alist-uploader.js"></script>

放置上传按钮

<input type="file" id="fileInput" multiple />
<button type="button" onclick="uploadFiles()">上传</button>

传递参数

<script>
  // 配置Alist上传器
  const alistUploaderOptions = new AlistUploader({
    // [必须]你的Alist服务地址
    baseUrl: "https://alist.example.com",
    // [必须]Alist账号
    username: "admin",
    // [必须]Alist密码
    password: "123456",
    // [必须]上传到哪个目录,例如要传到"https://alist.example.com/webdav",则照下方填写
    uploadRootFolder: "webdav",

    // [可选]上传并发数量, 默认值为 1。
    concurrency: 3,
    // [可选]为每次上传自动创建以时间命名(14位数字)的文件夹, 默认值为 false。
    createTimestampFolder: true,
    // [可选]控制台调试开关, 默认值为 false。
    debug: true,
    // [可选]版本号信息输出开关, 默认值为 true。
    showVersionInfo: true,
    // [可选]上传类型, 默认值为 "stream"也就是流式传输, 也可设置为"form"表单方式。
    uploadMethod: "stream",
  });

  // 上传按钮
  function uploadFiles() {
    const files = document.getElementById("fileInput").files;
    alistUploaderOptions.on("complete", (allSuccess) => {
      alert(allSuccess ? "所有文件上传完成!" : "部分文件上传失败。");
    });
    alistUploaderOptions.uploadFiles(files).catch((error) => {
      console.error("上传出错:", error);
    });
  }
</script>

About

纯前端实现多种云储存便捷文件上传JS库。支持CDN引入,简单配置即可使用。原理是调用个人部署的Alist接口,从而无需自己实现后端,可手动在服务端控制角色权限。附带详细的上传进度、速率、上传完毕预计时间等数据反馈。

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published