吃自己的狗粮,用Dropbox Go SDK

 

原文:http://coderbee.net/index.php/go/20130829/427

用Dropbox Go SDK 做的一个上传文件到Dropbox的小应用。

 

获取appKey和设置回调地址

到这个页面https://www.dropbox.com/developers/apps 创建一个应用,应用的类型选择Dropbox API app,在这个页面还可以选择应用能访问的数据范围。

 

应用创建好后就可以在详细页面查看它的的App key,也就是下面要用的。

 

在应用的详细页面,还要设置授权后的回调地址,也就是“ OAuth redirect URIs ”的输入框,这个地址必须是合法的URL,哪怕是不存在的,也就是,可以设置成“https://127.0.0.1/oauth2/authorized”。

 

获取授权码

将上面得到的appKey和回调地址拼接成下面这样: https://www.dropbox.com/1/oauth2/authorize?response_type=token&client_id=abc1234569XYZ&redirect_uri=https://127.0.0.1/oauth2/authorized

 

里面的client_id的值填appKey,redirect_uri填回调地址,把这个地址拷贝到浏览器打开,如果你还没有登录Dropbox,会提醒你登录,登录后大概是这样的界面:

vpsBak4coderbee

 

点击“允许”授权成功后,浏览器会调整,地址栏里的地址会变,拷出来大概是这样的: https://127.0.0.1/oauth2/authorized#access_token=O_xxkdkdkdw2yeidikcppdfdoiffjj&token_type=bearer&uid=158130000

 

上面的access_token: O_xxkdkdkdw2yeidikcppdfdoiffjj就是代码要用的。

 

调用Go SDK


var (
        tokens = map[string]string{
                "access_token": "O_xxkdkdkdw2yeidikcppdfdoiffjj",
                "token_type":   "bearer",
        }
)

func main() {
        flag.Parse()

        args := flag.Args()
        if len(args) < 2 {
                fmt.Printf("Usage: godropbox path/to/locale/file  /path/at/dropbox\n")
                return
        }

        oauth2 := &oauth2.OAuth2{AccessToken: tokens["access_token"], TokenType: tokens["token_type"]}

        dropboxApi := &dropbox.DropboxApi{Signer: oauth2, Root: "dropbox", Locale: "CN"}

        localePath, remotePath := flag.Arg(0), flag.Arg(1)
        _, err := dropboxApi.UploadByChunked(localePath, remotePath, 10485760, 8)
        if err != nil {
                fmt.Printf("error msg: %s\n", err)
                os.Exit(1)
        } else {
                os.Exit(0)
        }
}

go build命令构建成一个可执行文件。在我的VPS上使用: godropbox path/to/locale/file /path/at/dropbox,效果还行。

 

以前用Java SDK写过一个上传的功能,文件上传完了还要很久才退出。

 

 Go程序是编译成单个可执行文件的,不再需要处理依赖啥的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值