#Restore .encrypted files on Dropbox automatically
-Download the .zip of this repository. You can keep only the DropboxFileRestorer.jar file. This java file is a simplified version of the application which source code is shared in this repository, made to be deployed fast.
-Run the DropboxFileRestorer.jar.
-Copy the link in the first text box in a browser and click "allow".
-Copy the code in the second text box. Currently this application is still under development and can only be used by 100 different accounts. If you can't run authenticate, contact me.
-Once clicked the "List Encrypted Files" button, the application will start the authentication process. Since the app uses Dropbox API code, which by the way is shared in this repository, none of your personal login data is actually sent over the connection.
-The listbox should now be filled with all the files containing "encrypted" in your dropbox, deleted or not. Select the ones you want to restore and click "Recover". Dropbox will start downloading the respective non-encrypted files. Once done, you will then be able to deletethe encrypted files without data loss. This process is possible thanks to Dropbox feature to save old copies of edited files. No file will be deleted, renamed or created during this process, this application just restores the old copies. You could do that by your own on dropbox.com, but this is aimed to help you recover many files with far less effort, worth using only if hundreds of files have been compromised.
#The Fork
I initially forked this repository from the user Ghajba to deal with a Cryptolocker case as a consqeunce to the aftermath of an incident response session. I then decided to publish the edits to the original Dropbox API and the application I made to restore encrypted files on Dropbox. Along with the the modified API source you can compile yourself, I added the code for a an example of application you can find under DropboxAPI/src, as Eclipse source files (.classpath and .project are also there for debugging reasons). The required libraries for the compilation can be found under /DropboxAPI/lib: jackson-core and servlet-api for the Dropbox API, dropbox-core and jackson-core for the Application if you don't need deleted files support (in particular, support was added for the methods "getMetadataWithChildren" and "SearchFileAndFolderNames", make sure you delete the "true" value from the research if that is returning an error), or the "INCLUDE_DELETED" Dropbox Forked API version if you need support for the deleted files. If you need a compiled version for personal usage, compile it yourself or contact me privately in Europe day time. The "D.java" file is a very early scracth prototype of a simple swing layout builder, which is not related to Dropbox API by any mean.
- Twitter: @ciuffysrise
- Email: [email protected]
#Introduction
A Java library to access Dropbox's HTTP-based Core API.
License: MIT
This is for web applications. If you want to use Dropbox's API from Android, try the Sync SDK
If you're using Maven, then edit your project's "pom.xml" and add this to the <dependencies>
section:
<dependency>
<groupId>com.dropbox.core</groupId>
<artifactId>dropbox-core-sdk</artifactId>
<version>[1.7,1.8)</version>
</dependency>
If you aren't using Maven, here are the JARs you need:
- Dropbox Core SDK 1.7.6
- Jackson Core 2.2.3 (JSON parser)
You need a Dropbox API key to make API requests.
- Go to: https://www.dropbox.com/developers/apps
- If you've already registered an app, click on the "Options" link to see the app's API key and secret.
- Otherwise, click "Create an app" to register an app. Choose "Dropbox API app", then "Files and datastores", then "Yes" or "No" depending on your needs.
Save the API key to a JSON file called, say, "test.app":
{
"key": "Your Dropbox API app key",
"secret": "Your Dropbox API app secret"
}
Before your app can access a Dropbox user's files, the user must authorize your application using OAuth 2. Successfully completing this authorization flow gives you an access token for the user's Dropbox account, which grants you the ability to make Dropbox API calls to access their files.
- Authorization example for a simple web app: Web File Browser example
- Authorization example for a command-line tool: Command-Line Authorization example
Once you have an access token, create a DbxClient
and start making API calls.
You only need to perform the authorization process once per user. Once you have an access token for a user, save it somewhere persistent, like in a database. The next time that user visits your app's, you can skip the authorization process and go straight to creating a DbxClient
and making API calls.
Prerequisites: Apache Maven
- Download this repository.
- Save your Dropbox API key in a file called "test.app". See: Get a Dropbox API key, above.
mvn install
mvn -f examples/pom.xml compile
This examples runs through the OAuth 2 authorization flow.
cd examples
./run authorize test.app test.auth
This produces a file named "test.auth" that has the access token. This file can be passed in to the other examples.
A trivial example that calls the /account/info API endpoint.
cd examples
./run account-info test.auth
(You must first generate "test.auth" using the "authorize" example above.)
Uploads a file to Dropbox.
cd examples
./run upload-file test.auth local-path/file.txt /dropbox-path/file.txt
(You must first generate "test.auth" using the "authorize" example above.)
A tiny web app that runs through the OAuth 2 authorization flow and then uses Dropbox API calls to let the user browse their Dropbox files.
Prerequisite: In the Dropbox API app configuration console, you need to add "http://localhost:5000/dropbox-auth-finish" to the list of allowed redirect URIs.
cd examples
./run web-file-browser 5000 test.app web-file-browser.db