alist-org / alist

🗂️A file list/WebDAV program that supports multiple storages, powered by Gin and Solidjs. / 一个支持多存储的文件列表/WebDAV程序,使用 Gin 和 Solidjs。
https://alist.nn.ci
GNU Affero General Public License v3.0
42.49k stars 5.49k forks source link

feat: add support for lark driver #6475

Closed wintbiit closed 4 months ago

wintbiit commented 4 months ago

添加 飞书云空间 驱动 引入 飞书api sdk https://open.feishu.cn/document/server-docs/docs/drive-v1/introduction

使用方法:添加企业自建应用,复制AppID, AppSecret

wintbiit commented 4 months ago

External view 模式: 打开后复制飞书链接,可跳转到飞书网页预览

wintbiit commented 4 months ago

Build failed for i386 and arm/v7 os because of sonic and other int64 issues. Is there a build tag in alist that I can use to include this driver only in x64 and arm64?

anwen-anyi commented 4 months ago
  1. Tenant url prefix 填写什么吖? image

  2. 飞书云空间 入口在哪儿吖?自建企业了没找到在网页端

  3. 是否需要开启一些API权限


补充


应该得开启这些权限吧? image

我开启上面权限后通过AList创建一个文件夹后在飞书后台没找到这个文件夹 image

然后在飞书后台创建了一个文件夹和上传了一个文件无法在AList前台显示 哈哈~ image

anwen-anyi commented 4 months ago

是不是那里不对?没有添加进去? 还是说做了限制~ 使用自动构建的包和我自己编译的都没有这个飞书的驱动? 😹

自动构建的包

xhofe commented 4 months ago

好像忘记加Windows了

anwen-anyi commented 4 months ago

好像忘记加Windows了

只有是 x64或者arm64类型的设备能用吗? Windows/以及Linux , Mac呢 (看到了)

anwen-anyi commented 4 months ago
  1. Tenant url prefix 填写什么吖? image
  2. 飞书云空间 入口在哪儿吖?自建企业了没找到在网页端
  3. 是否需要开启一些API权限

填写这个域名或者 前缀都不行,可以告知一下么 :joy_cat: 属实搞不明白.... @wintbiit image

wintbiit commented 4 months ago

抱歉晚了,,实在没想到这么快就merge了

  1. 权限至少开通 drive:drivedrive:file,即 查看、评论、编辑和管理云空间中所有文件上传、下载文件到云空间
  2. tenant url prefix只在external view mode开启下有用,作用是把复制到的链接替换为飞书的预览链接,相当于用飞书的预览替换alist的预览能力,主要是在用户都是租户内用户且嫌弃带宽低或是希望评论等功能的使用。tenant url prefix填写 https://xxxx.feishu.cn 这样
anwen-anyi commented 4 months ago

抱歉晚了,,实在没想到这么快就merge了

  1. 权限至少开通 drive:drivedrive:file,即 查看、评论、编辑和管理云空间中所有文件上传、下载文件到云空间
  2. tenant url prefix只在external view mode开启下有用,作用是把复制到的链接替换为飞书的预览链接,相当于用飞书的预览替换alist的预览能力,主要是在用户都是租户内用户且嫌弃带宽低或是希望评论等功能的使用。tenant url prefix填写 https://xxxx.feishu.cn 这样

为啥我看不到文件? :joy_cat:

image image image

wintbiit commented 4 months ago
image image

我这里是可以的,你那里没法在自己飞书里看到应该是因为driver使用的是机器人的认证token,也就是说上传到的机器人的云空间,所以在个人的云空间是看不到的(飞书云空间是个人的不是全租户的),所以验证的话可以用飞书的在线api验证 @anwen-anyi

anwen-anyi commented 4 months ago

我这里是可以的,你那里没法在自己飞书里看到应该是因为driver使用的是机器人的认证token,也就是说上传到的机器人的云空间,所以在个人的云空间是看不到的(飞书云空间是个人的不是全租户的),所以验证的话可以用飞书的在线api验证 @anwen-anyi

:heart: 可以说说教程吗~

我用的飞书云文档链接是:https://www.feishu.cn/product/drive

wintbiit commented 4 months ago
  1. 前往飞书开放平台,创建企业自建应用
  2. 进入权限管理,开启权限drive:drivedrive:file,即 查看、评论、编辑和管理云空间中所有文件 和 上传、下载文件到云空间
  3. 点击创建版本,发布应用
  4. 创建存储复制appId, appSecret到对应栏
  5. 选择模式:若启用External View Mode,则需关闭Web代理,填写Tenant Url Prefix,alist内不可预览,可复制链接后跳转到飞书预览地址;若关闭External View Mode,则需开启Web代理,alist内可预览
anwen-anyi commented 4 months ago
  1. 前往飞书开放平台,创建企业自建应用
  2. 进入权限管理,开启权限drive:drivedrive:file,即 查看、评论、编辑和管理云空间中所有文件 和 上传、下载文件到云空间
  3. 点击创建版本,发布应用
  4. 创建存储复制appId, appSecret到对应栏
  5. 选择模式:若启用External View Mode,则需关闭Web代理,填写Tenant Url Prefix,alist内不可预览,可复制链接后跳转到飞书预览地址;若关闭External View Mode,则需开启Web代理,alist内可预览

对流程完全一致... :joy_cat: 就是不显示文件,开启权限后我创建文件,也看不到我新建的文件去哪儿了..

这个没看太懂.

你那里没法在自己飞书里看到应该是因为driver使用的是机器人的认证token,也就是说上传到的机器人的云空间,所以在个人的云空间是看不到的(飞书云空间是个人的不是全租户的),所以验证的话可以用飞书的在线api验证

wintbiit commented 4 months ago
  1. 前往飞书开放平台,创建企业自建应用
  2. 进入权限管理,开启权限drive:drivedrive:file,即 查看、评论、编辑和管理云空间中所有文件 和 上传、下载文件到云空间
  3. 点击创建版本,发布应用
  4. 创建存储复制appId, appSecret到对应栏
  5. 选择模式:若启用External View Mode,则需关闭Web代理,填写Tenant Url Prefix,alist内不可预览,可复制链接后跳转到飞书预览地址;若关闭External View Mode,则需开启Web代理,alist内可预览

对流程完全一致... :joy_cat: 就是不显示文件,开启权限后我创建文件,也看不到我新建的文件去哪儿了..

这个没看太懂.

你那里没法在自己飞书里看到应该是因为driver使用的是机器人的认证token,也就是说上传到的机器人的云空间,所以在个人的云空间是看不到的(飞书云空间是个人的不是全租户的),所以验证的话可以用飞书的在线api验证

是显示空还是显示有一个无名称的文件嘞,,后者的话好像是alist缓存的问题,重启下后端试试。前者我好像没有触发😂

anwen-anyi commented 4 months ago

是什么也显示不出来,刷新也不行,重启AList也一样,私下试过很多次了

诺 我操作流程,暂时不填Tenant Url Prefix也没问题吧?用不到暂时 视频可能需要下载观看(QQ压缩有问题无法在线观看)

https://github.com/alist-org/alist/assets/56105412/72a0c7cd-0a09-49cd-8366-a0b82b45a7cc

以下是我在云空间的文件~ image

wintbiit commented 4 months ago

是什么也显示不出来,刷新也不行,重启AList也一样,私下试过很多次了

诺 我操作流程,暂时不填Tenant Url Prefix也没问题吧?用不到暂时 视频可能需要下载观看(QQ压缩有问题无法在线观看)

https://github.com/alist-org/alist/assets/56105412/72a0c7cd-0a09-49cd-8366-a0b82b45a7cc

以下是我在云空间的文件~ image

奥是这样的,飞书的云空间访问是个人的不是全租户的,所以自己上传访问到的是用户个人的云空间,自建应用访问的是应用的云空间,因此alist挂载应用云空间后是看不到用户云空间的文件的。但是试试在alist里往挂载目录下上传文件后,是可以正常刷新显示出来的,也可以用飞书的api https://open.feishu.cn/document/server-docs/docs/drive-v1/folder/list 验证到存放进了应用的云空间

wintbiit commented 4 months ago

目前driver的设计是使用应用的tenant access token调用飞书api,因此看不到用户的云空间。要使用用户云空间的话可以改成使用user access token的设计

参考https://open.feishu.cn/document/server-docs/api-call-guide/calling-process/get-access-token#5aa2e490

anwen-anyi commented 4 months ago

有点儿乱...哈哈,我已经懵逼了(也就是说目前只能通过AList来操作上传文件? 暂时不支持直接从飞书云空间上传显示到AList) 创建文件夹倒是可以,但是一使用上传文件就提示错误了....就几十MB的文件.. image

wintbiit commented 4 months ago

有点儿乱...哈哈,我已经懵逼了(也就是说目前只能通过AList来操作上传文件? 暂时不支持直接从飞书云空间上传显示到AList) 创建文件夹倒是可以,但是一使用上传文件就提示错误了....就几十MB的文件.. image

可能是基础版超过20MB了,参考 https://www.feishu.cn/hc/zh-CN/articles/360049067549-%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E5%92%8C%E5%9C%A8%E7%BA%BF%E9%A2%84%E8%A7%88%E7%9A%84%E5%A4%A7%E5%B0%8F%E9%99%90%E5%88%B6%E6%98%AF%E5%A4%9A%E5%B0%91

anwen-anyi commented 4 months ago

是这样的 还没认证,我已经懵逼了 或许这个 飞书的文档得麻烦大佬来PR一下了

rong6 commented 3 weeks ago

可以支持一下国际版的吗,API应该差不多:https://www.larksuite.com