客观的
向 dropbox 的 CLI 工具添加一个命令,以获取给定路径(文件或文件夹)的共享链接。
更改在这里:github fork。
背景
dropbox-go-sdk 有一个函数,它接受一个路径,并返回一个新的共享链接,或者返回一个包含现有共享链接的错误。
我不知道如何使用错误来提取现有的共享链接。
代码
在 github 上,并在此处摘录:
dbx := sharing.New(config)
res, err := dbx.CreateSharedLinkWithSettings(arg)
if err != nil {
switch e := err.(type) {
case sharing.CreateSharedLinkWithSettingsAPIError:
fmt.Printf("%v", e.EndpointError)
default:
return err
}
}
这将打印以下内容:
&{{shared_link_already_exists} <nil> <nil>}found unknown shared link typeError: shared_link_already_exists/...
跟踪: CreateSharedLinkWithSettings --> CreateSharedLinkWithSettingsAPIError --> CreateSharedLinkWithSettingsError --> SharedLinkAlreadyExistsMetadata --> IsSharedLinkMetadata
IsSharedLinkMetadata
包含我正在寻找的 URL。
更多信息
- API 文档指向CreateSharedLinkWithSettings,它应该传回错误中的信息,包括现有的 Url。
我很难理解如何处理错误并从中提取 url。
- dbxcli 有一些代码执行类似的操作,但同样,不确定它是如何工作的,足以将其应用于我正在处理的代码。它是一个结构吗?地图?我不知道这东西叫什么。
err.(type)
代码中发生了一些奇怪的魔法。我如何访问数据?