mirror of
https://github.com/tickstep/aliyunpan.git
synced 2025-01-23 14:32:14 +08:00
add fast share create command
This commit is contained in:
parent
4a59f246f2
commit
2eaba0c3c8
@ -93,12 +93,27 @@ func CmdShare() cli.Command {
|
|||||||
sharePwd = RandomStr(4)
|
sharePwd = RandomStr(4)
|
||||||
}
|
}
|
||||||
|
|
||||||
if config.Config.ActiveUser().ActiveDriveId != config.Config.ActiveUser().DriveList.GetResourceDriveId() {
|
// 模式
|
||||||
// 只有资源库才支持私有、公开分享
|
modeFlag := "3"
|
||||||
fmt.Println("只有资源库才支持创建分享链接")
|
if c.IsSet("mode") {
|
||||||
return nil
|
modeFlag = c.String("mode")
|
||||||
}
|
}
|
||||||
RunOpenShareSet(parseDriveId(c), c.Args(), et, sharePwd)
|
if modeFlag == "1" || modeFlag == "2" {
|
||||||
|
if config.Config.ActiveUser().ActiveDriveId != config.Config.ActiveUser().DriveList.GetResourceDriveId() {
|
||||||
|
// 只有资源库才支持私有、公开分享
|
||||||
|
fmt.Println("只有资源库才支持分享链接,其他请使用快传链接")
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if modeFlag == "1" {
|
||||||
|
if sharePwd == "" {
|
||||||
|
sharePwd = RandomStr(4)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
sharePwd = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
RunOpenShareSet(modeFlag, parseDriveId(c), c.Args(), et, sharePwd)
|
||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
Flags: []cli.Flag{
|
Flags: []cli.Flag{
|
||||||
@ -112,6 +127,11 @@ func CmdShare() cli.Command {
|
|||||||
Usage: "有效期,0-永久,1-1天,2-7天",
|
Usage: "有效期,0-永久,1-1天,2-7天",
|
||||||
Value: "0",
|
Value: "0",
|
||||||
},
|
},
|
||||||
|
cli.StringFlag{
|
||||||
|
Name: "mode",
|
||||||
|
Usage: "模式,1-私密分享,2-公开分享,3-快传",
|
||||||
|
Value: "3",
|
||||||
|
},
|
||||||
cli.StringFlag{
|
cli.StringFlag{
|
||||||
Name: "sharePwd",
|
Name: "sharePwd",
|
||||||
Usage: "自定义私密分享密码,4个字符,没有指定则随机生成",
|
Usage: "自定义私密分享密码,4个字符,没有指定则随机生成",
|
||||||
@ -124,7 +144,7 @@ func CmdShare() cli.Command {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// RunOpenShareSet 执行分享
|
// RunOpenShareSet 执行分享
|
||||||
func RunOpenShareSet(driveId string, paths []string, expiredTime string, sharePwd string) {
|
func RunOpenShareSet(modeFlag, driveId string, paths []string, expiredTime string, sharePwd string) {
|
||||||
if len(paths) <= 0 {
|
if len(paths) <= 0 {
|
||||||
fmt.Println("请指定文件路径")
|
fmt.Println("请指定文件路径")
|
||||||
return
|
return
|
||||||
@ -159,26 +179,46 @@ func RunOpenShareSet(driveId string, paths []string, expiredTime string, sharePw
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 创建分享
|
// 创建分享类型
|
||||||
r, err1 := panClient.OpenapiPanClient().ShareLinkCreate(aliyunpan.ShareCreateParam{
|
if modeFlag == "3" {
|
||||||
DriveId: driveId,
|
// 快传
|
||||||
SharePwd: sharePwd,
|
r, err1 := panClient.OpenapiPanClient().FastShareLinkCreate(aliyunpan.FastShareCreateParam{
|
||||||
Expiration: expiredTime,
|
DriveId: driveId,
|
||||||
FileIdList: fidList,
|
FileIdList: fidList,
|
||||||
})
|
})
|
||||||
if err1 != nil || r == nil {
|
if err1 != nil || r == nil {
|
||||||
if err1.Code == apierror.ApiCodeFileShareNotAllowed {
|
if err1.Code == apierror.ApiCodeFileShareNotAllowed {
|
||||||
fmt.Printf("创建分享链接失败: 该文件类型不允许分享\n")
|
fmt.Printf("创建快传链接失败: 该文件类型不允许分享\n")
|
||||||
} else {
|
} else {
|
||||||
fmt.Printf("创建分享链接失败: %s\n", err1)
|
fmt.Printf("创建快传链接失败: %s\n", err1)
|
||||||
|
}
|
||||||
|
return
|
||||||
}
|
}
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
fmt.Printf("创建分享链接成功\n")
|
fmt.Printf("创建快传链接成功\n")
|
||||||
if len(sharePwd) > 0 {
|
|
||||||
fmt.Printf("链接:%s 提取码:%s\n", r.ShareUrl, r.SharePwd)
|
|
||||||
} else {
|
|
||||||
fmt.Printf("链接:%s\n", r.ShareUrl)
|
fmt.Printf("链接:%s\n", r.ShareUrl)
|
||||||
|
} else {
|
||||||
|
// 分享
|
||||||
|
r, err1 := panClient.OpenapiPanClient().ShareLinkCreate(aliyunpan.ShareCreateParam{
|
||||||
|
DriveId: driveId,
|
||||||
|
SharePwd: sharePwd,
|
||||||
|
Expiration: expiredTime,
|
||||||
|
FileIdList: fidList,
|
||||||
|
})
|
||||||
|
if err1 != nil || r == nil {
|
||||||
|
if err1.Code == apierror.ApiCodeFileShareNotAllowed {
|
||||||
|
fmt.Printf("创建分享链接失败: 该文件类型不允许分享\n")
|
||||||
|
} else {
|
||||||
|
fmt.Printf("创建分享链接失败: %s\n", err1)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Printf("创建分享链接成功\n")
|
||||||
|
if len(sharePwd) > 0 {
|
||||||
|
fmt.Printf("链接:%s 提取码:%s\n", r.ShareUrl, r.SharePwd)
|
||||||
|
} else {
|
||||||
|
fmt.Printf("链接:%s\n", r.ShareUrl)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,6 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"github.com/tickstep/aliyunpan-api/aliyunpan"
|
"github.com/tickstep/aliyunpan-api/aliyunpan"
|
||||||
"github.com/tickstep/aliyunpan-api/aliyunpan/apierror"
|
"github.com/tickstep/aliyunpan-api/aliyunpan/apierror"
|
||||||
"github.com/tickstep/aliyunpan-api/aliyunpan_web"
|
|
||||||
"github.com/tickstep/aliyunpan/cmder"
|
"github.com/tickstep/aliyunpan/cmder"
|
||||||
"github.com/tickstep/aliyunpan/cmder/cmdtable"
|
"github.com/tickstep/aliyunpan/cmder/cmdtable"
|
||||||
"github.com/tickstep/aliyunpan/internal/config"
|
"github.com/tickstep/aliyunpan/internal/config"
|
||||||
@ -270,7 +269,7 @@ func RunShareSet(modeFlag, driveId string, paths []string, expiredTime string, s
|
|||||||
|
|
||||||
if modeFlag == "3" {
|
if modeFlag == "3" {
|
||||||
// 快传
|
// 快传
|
||||||
r, err1 := panClient.WebapiPanClient().FastShareLinkCreate(aliyunpan_web.FastShareCreateParam{
|
r, err1 := panClient.WebapiPanClient().FastShareLinkCreate(aliyunpan.FastShareCreateParam{
|
||||||
DriveId: driveId,
|
DriveId: driveId,
|
||||||
FileIdList: fidList,
|
FileIdList: fidList,
|
||||||
})
|
})
|
||||||
|
Loading…
Reference in New Issue
Block a user