mirror of
https://github.com/halejohn/Cloudreve.git
synced 2026-01-26 09:34:57 +08:00
Feat: preview shared file
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package controllers
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/HFO4/cloudreve/service/share"
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
@@ -37,3 +38,26 @@ func GetShareDownload(c *gin.Context) {
|
||||
c.JSON(200, ErrorResponse(err))
|
||||
}
|
||||
}
|
||||
|
||||
// PreviewShare 预览分享文件内容
|
||||
func PreviewShare(c *gin.Context) {
|
||||
// 创建上下文
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
defer cancel()
|
||||
|
||||
var service share.SingleFileService
|
||||
if err := c.ShouldBindUri(&service); err == nil {
|
||||
res := service.PreviewContent(ctx, c, false)
|
||||
// 是否需要重定向
|
||||
if res.Code == -301 {
|
||||
c.Redirect(301, res.Data.(string))
|
||||
return
|
||||
}
|
||||
// 是否有错误发生
|
||||
if res.Code != 0 {
|
||||
c.JSON(200, res)
|
||||
}
|
||||
} else {
|
||||
c.JSON(200, ErrorResponse(err))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -116,6 +116,12 @@ func UserLogin(c *gin.Context) {
|
||||
|
||||
}
|
||||
|
||||
// UserSignOut 用户退出登录
|
||||
func UserSignOut(c *gin.Context) {
|
||||
util.DeleteSession(c, "user_id")
|
||||
c.JSON(200, serializer.Response{})
|
||||
}
|
||||
|
||||
// UserMe 获取当前登录的用户
|
||||
func UserMe(c *gin.Context) {
|
||||
currUser := CurrentUser(c)
|
||||
|
||||
@@ -171,9 +171,11 @@ func InitMasterRouter() *gin.Engine {
|
||||
share := v3.Group("share")
|
||||
{
|
||||
// 获取分享
|
||||
share.GET(":id", controllers.GetShare)
|
||||
share.GET("info/:id", controllers.GetShare)
|
||||
// 创建文件下载会话
|
||||
share.POST("download/:id", controllers.GetShareDownload)
|
||||
// 预览分享文件
|
||||
share.GET("preview/:id", controllers.PreviewShare)
|
||||
}
|
||||
|
||||
// 需要登录保护的
|
||||
@@ -185,7 +187,10 @@ func InitMasterRouter() *gin.Engine {
|
||||
{
|
||||
// 当前登录用户信息
|
||||
user.GET("me", controllers.UserMe)
|
||||
// 存储信息
|
||||
user.GET("storage", controllers.UserStorage)
|
||||
// 退出登录
|
||||
user.DELETE("session", controllers.UserSignOut)
|
||||
|
||||
// WebAuthn 注册相关
|
||||
authn := user.Group("authn")
|
||||
|
||||
Reference in New Issue
Block a user