`
wen866595
  • 浏览: 264581 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

吃自己的狗粮,用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程序是编译成单个可执行文件的,不再需要处理依赖啥的。

1
4
分享到:
评论

相关推荐

    Android代码-dropbox-sdk-java

    Dropbox Core SDK for Java 6 A Java library to access Dropbox's HTTP-based Core API v2. This SDK also supports the older Core API v1, but that support will be removed at some point. License: MIT ...

    dropbox-sdk-java,一个用于Dropbox核心API的Java库。.zip

    一个Java库,用于访问Dropbox的基于HTTP的核心API V2。这个sdk还支持旧的核心api v1,但是这种支持在某个时候会被删除。

    dropbox-sdk-go-unofficial, Go的非官方 Dropbox SDK.zip

    dropbox-sdk-go-unofficial, Go的非官方 Dropbox SDK 面向 [UNOFFICIAL] 的 Dropbox 用于与Dropbox集成的非官方 ... 使用 go 1.5 测试这菊花什么意思这里没有正式的Dropbox支持Bug 可能也可能无法修复并非所有的SDK功能

    dropbox javaSDK 扎包

    上传的是源码包,不清楚的 私信 ..........

    dropbox-sdk-js:Java版官方Dropbox API V2 SDK

    官方的Dropbox SDK for Javascript。 可以在上文档安装通过创建应用通过安装$ npm install --save dropbox从源安装: $ git clone https://github.com/dropbox/dropbox-sdk-js.git$ cd dropbox-sdk-js$ npm install...

    用于Python的官方Dropbox API V2 SDK

    可以在通过Developer Console.Install中获取Python.Documentation的offical Dropbox SDK。通过Pip,通过PIP获取应用程序,可以找到:.install从源代码:。在安装中,安装,按照我们的一个示例或阅读文档读取文档 。...

    dropbox-sdk-python:适用于Python的官方Dropbox API V2 SDK

    适用于Python的正式Dropbox SDK。 可以在“找到。安装通过创建应用。 通过安装: $ pip install dropbox 从源安装: $ git clone git://github.com/dropbox/dropbox-sdk-python.git$ cd dropbox-sdk-python$ python ...

    dropbox-sdk-dotnet:.NET的官方Dropbox API V2 SDK

    用于DotNet的官方Dropbox SDK。 可以在上找到文档 安装 通过创建应用 通过安装 PM&gt; Install-Package Dropbox.Api 安装后,请遵循我们的或阅读。 您还可以查看我们的。 例子 我们提供以帮助您开始使用SDK中的许多...

    dropbox-android-sdk-1.6.3

    这是迄今为止最新的android dropbox api ,由于dropbox官网被禁,我就上传了,希望需要开发云盘的可以下载看看

    前端开源库-react-native-dropbox-sdk

    前端开源库-react-native-dropbox-sdkDropbox JavaScript SDK是一个轻量级的、基于承诺的Dropbox v2 API接口,可在nodejs和浏览器环境中使用。

    dropbox-android-sdk:适用于 Android 的 Dropbox Core API SDK 的 Mavenized 版本

    Dropbox Android SDK 使用入门 在您的构建脚本中包含该库。 请参阅 Maven/Gradle 部分。 您需要首先使用您的消费者密钥和秘密创建一个 AndroidAuthSession。 使用您的会话创建一个 DropboxAPI 对象。 开始开发您...

    dropbox-sdk-java:Dropbox Core API的Java库

    适用于Java的Dropbox Core SDK 8+ 一个Java库,用于访问 。 该SDK还支持较早的 ,但有时会删除该支持。 执照: 文档: 设置 如果您使用的是Maven,则编辑项目的“ pom.xml”并将其添加到部分: &lt; groupId&gt;...

    Laravel开发-dropbox

    Laravel开发-dropbox Dropbox是Laravel 5的Dropbox桥

    dropbox-sdk-ruby:用于Dropbox API v2的Ruby SDK

    适用于Ruby的Dropbox SDK 这是一个小的Ruby库,用于访问新的 。 它提供了一个单独的类Dropbox::Client ,其类具有映射到大多数Dropbox API端点的方法。 当前,支持auth , files和users命名空间中的所有端点。 已...

    dropbox-sdk-rust:用于Rust的Dropbox SDK

    用于Rust的Dropbox SDK Rust绑定到Dropbox APIv2,由Stone根据官方规范生成。 用于生成代码的Stone SDK和Dropbox API规范分别位于stone和dropbox-api-spec子模块中。使用git submodule init和git submodule update...

    dropbox的android开发包及文档

    该SDK为dropbox官方发布,由于dropbox网站国内时常上不去,特此上传

    com.dropbox.sdk_1.2.3.jar

    jar包,官方版本,自测可用

    dropbox-php-sdk:PHP一个易于使用PHP SDK与Dropbox V2 API一起使用

    适用于PHP的Dropbox SDK v2 与一起使用的非官方PHP SDK。开始使用转至“Wiki”部分进行安装和入门。API文件执照Dropbox PHP Client已获得MIT许可证(MIT)的许可。

    DropboxAPI:Xojo Dropbox API SDK

    Dropbox 核心 API SDK 语言:Xojo 所有版本(桌面) 作者:Mike Cotone 许可:BSD-3-Clause - 请自担风险使用 这个项目是什么? 这个开源项目源于需要直接(而不是通过同步服务)与 Dropbox 进行程序集成。 这...

    dropbox-sdk-obj-c:Dropbox API v2的官方Objective-C SDK

    用于在iOS或macOS上与Dropbox 集成的官方Dropbox Objective-C SDK。 完整的文档。 注意:请不要在生产中依靠master 。 请改用我们标记的(最好通过CocoaPods或Carthage获取),因为这些提交已经过更彻底的测试。 ...

Global site tag (gtag.js) - Google Analytics