Dropbox提供了基于各种类型的API和应用类型的开发工具和接口,详细的可以参考 https://www.dropbox.com/developers/core 。这里我只介绍基于Java的文件操作实现,可以参考 https://www.dropbox.com/developers/core/start/java 。
一、创建应用
有点像Google的APP,需要先创建一个应用,创建应用的链接为 https://www.dropbox.com/developers/apps (前提是你已经有了Dropbox账号,并已经登陆了Dropbox),点击 Create App 后有两个选项:
- Dropbox API App
- Drop-ins App
Drop-ins App 从它的介绍看来,我理解是基于Web和Mobile的应用的API,所以这里我选择 Dropbox API App,剩下的选项如下图:
App的名字可能需要另取,以通过验证。
提交完以后就进入下一页了,对应于刚创建的App的详细信息:
这里面最重要的部分就是红色框里的App key 和App Secret,需要用他们来获取AccessToken,以允许最终的操作的执行,蓝色部分可以指定获取Authorize Code时的返回链接,也即获取Authorize Code所指定URL里的redirect_url参数。 不过对我们的Demo应用,这里的所有值都可以为空,不影响。
二、添加依赖
App创建完后,基本上就可以开始应用的开发了。不过还差一点点。我们先要去把Dropbxo相关的依赖加上。Dropbox提供了一个用于Java应用开发的工具包,链接为:https://www.dropbox.com/developers/core/sdks/java 。如果是普通的Java应用,可能就需要安装它提供的JDK安装包。如果是Maven应用,则简单的添加以下依赖即可:
<dependency> <groupId>com.dropbox.core</groupId> <artifactId>dropbox-core-sdk</artifactId> <version>[1.7,1.8)</version> </dependency>
我这里使用基于Maven依赖的方式。不过哪一种方式对于后面的开发都不影响。
三、获取Authorize Code
Dropbox应用是基于HTTP和OAuth认证方式进行访问的。因此在真正操作之前,我们首先需要获取一个有效的Access Token,然后在以后的访问和操作中都使用这个Access Token进行认证。
这个时候就需要用到上面的App Key和App Secret了。我们需要用它去申请一个Authorize code。其实就是一个用于生成Authorize Code的链接,这个链接打开以后有两个选项:取消 和 同意。如果App拥有者(App Owner,在咱们的例子,也就是我们自己)点击了同意,则会生成一个Authorize Code,App拥有都需要把这个Code发给访问应用的申请人。
每个应用对应的链接是固定的格式,最简单的就是Authorize URL:
https://www.dropbox.com/1/oauth2/authorize?client_id=APP_KEY&response_type=code
(替换APP_KEY为应用对应的App Key,看上图)
对于每个应用申请者来说,你都需要把三个值发给他:
-
App Key
-
App Secret
-
点击Authorize URL里的 同意 后生成的一个Authorize Code.
如果用代码的方式获取Authorize URL,则代码如下:
String APP_KEY = "APP_KEY"; String APP_SECRET = "APP_SECRET"; DbxAppInfo appInfo = new DbxAppInfo(APP_KEY, APP_SECRET); DbxRequestConfig config = new DbxRequestConfig("dropbox/1.0", Locale .getDefault().toString()); DbxWebAuthNoRedirect webAuth = new DbxWebAuthNoRedirect(config, appInfo); // Have the user sign in and authorize your app. String authorizeUrl = webAuth.start();
三、获取Access Token
有了App Key,App Secret和Authorize Code,以后,可以用以下代码(其实这个代码最终构建的就是一个HTTP的请求,所以也可以直接发HTTP的请求)去获取Access Token:
String APP_KEY = "APP_KEY"; String APP_SECRET = "APP_SECRET"; String AUTHORIZE_CODE = "AUTHORIZE_CODE"; DbxAppInfo appInfo = new DbxAppInfo(APP_KEY, APP_SECRET); DbxRequestConfig config = new DbxRequestConfig("dropbox/1.0", Locale .getDefault().toString()); DbxWebAuthNoRedirect webAuth = new DbxWebAuthNoRedirect(config, appInfo); DbxAuthFinish authFinish = webAuth.finish(AUTHORIZE_CODE); String accessToken = authFinish.accessToken;
这个Access Token可以存起来,以重复利用,可以使用以下代码将它存到一个文件里(也可以是其他地方):
DbxAuthInfo authInfo = new DbxAuthInfo(accessToken, appInfo.host); DbxAuthInfo.Writer.writeToFile(authInfo, new File("access.auth"));
读取的时候,可以用类似的方式:
DbxAuthInfo readFromFile = DbxAuthInfo.Reader.readFromFile(new File("access.auth")); String accessToken = readFromFile.accessToken;
相关推荐
Amazon S3的基于Java的GUI前端 这是一个Java Swing应用程序,您可以在其中拖放文件,然后将文件上传到您的Amazon S3帐户。 您可以创建指向这些文件的公共链接,并将这些链接粘贴到电子邮件中,以便稍后可以通过单击...
PGP工具PGP Tool是基于Java的桌面GUI应用程序,可轻松对文件和文本进行PGP解密/加密。 对于那些倾向于在计算机上存储敏感信息,有时将其同步到Google驱动器,Dropbox等并且不希望此信息以未加密状态存储的用户而言,...
java实现下载文件源码此项目已存档。 日蚀通量 项目“Eclipse Flux”是评估未来可能的基于云的开发人员工具的原型工作。 基本思想基于 Git 感知项目同步机制(您可以将其视为代码的 DropBox),该机制使项目在不同的...
全Python基础构建当这些初创公司把这个优雅利落的语言作为基础设施来支持其业务的快速增长而得到越来越多的利益时,我在考虑我们StuhbHub(一个基于Java生态系统的公司)怎样也可以从中获益,节省工作时间,并显著...
Dropbox-lite是一个高可用性,高度可扩展且经济高效的基于Web的3层应用程序,托管在AWS云上,它为授权用户提供安全的文件管理。 该应用程序使用各种AWS云技术(例如S3和RDS)来存储与文件和用户相关的数据。 应用...
项目本身已经包含了一个能够选择本地sdcard文件的实现,但你完全可以扩展实现一个文件列表来源于云端的选择器,比如Dropbox, ftp,ssh等。 选择器是基于activity,在屏幕较小的设备上全屏显示,而在较大的屏幕上则...
UPS登录界面 使用 Dropbox 同步 API 从共享文件接收数据并显示此基于数据的图表的简单 Android 应用程序。
是一个基于 P2P 的文件同步和共享应用程序,用 Java 编写并构建在 . 它提供了一个功能齐全的最终用户解决方案,专注于 Windows 平台集成、图形用户界面和类似 Dropbox 的功能。 我们在 下发布 PeerWasp 并公开开发源...
基本思想是基于 *.txt 文件显示和创建音乐主表,这些文件本地保存在您的 SD 卡上,以便您可以使用 FolderSync 等外部工具将它们同步到 Google Drive 或 Dropbox 等服务,使用以下目标: 从个人电脑/笔记本电脑更...
- 目前支持的图床:七牛、腾讯、网易、百度、京东、阿里、又拍、sm.ms、Imgur、Ucloud、青云、Nextcloud、Github、Gitee(码云)、Cloudinary、Chevereto、Minio、Aws s3、金山、华为、DropBox、OneDrive、GoogleDrive...
并执行以下操作:提取它们以创建文件结构,就像在dropbox链接中的骨骼中一样,或简单地用您的文件替换骨骼中的那些文件。 步骤5 :从github下载项目代码:访问此链接:或更确切地说,为了下载源代码: 将该zi
deeplearning4j是基于java的深度学习库,当然,它有许多特点,但暂时还没学那么深入,所以就不做介绍了 需要学习dl4j,无从下手,就想着先看看官网的examples,于是,下载了examples程序,结果无法运行,总是出错...
这适用于基于Debian的操作系统,例如: 、 和 。 我更喜欢 Ubuntu 目录 (从官方存储库为 Nvidia 驱动程序安装驱动程序) (Windows 模拟器)(在 linux 上运行 Microsoft:registered: Windows:registered: 应用程序...
蜂巢对蜂是一个用 Java 编写的开源库,用于安全、分布式、基于 P2P 的文件同步和共享。 它建立在之上, 是一种用于多键值对的高级高性能 DHT。 Hive2Hive 项目在下获得,欢迎任何贡献。 尽管存在许多知名的同步和...
虽然基本思想类似于Dropbox,但Syncany是开源的,并且在存储类型和提供程序方面还提供了数据加密和更大的灵活性: 数据加密:Syncany在本地对文件进行加密,因此任何联机存储都可以用于敏感数据。 任何存储:...