GithubHelp home page GithubHelp logo

labibllaca / dropbox-sdk-java Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ghajba/dropbox-sdk-java

1.0 2.0 0.0 6.08 MB

A Java library for the Dropbox Core API.

Home Page: https://www.dropbox.com/developers/core/start/java

License: MIT License

Java 100.00%

dropbox-sdk-java's Introduction

Dropbox Core SDK for Java 6+

#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.

#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

Javadoc.

Setup

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:

Get a Dropbox API key

You need a Dropbox API key to make API requests.

Save the API key to a JSON file called, say, "test.app":

{
  "key": "Your Dropbox API app key",
  "secret": "Your Dropbox API app secret"
}

Using the Dropbox API

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.

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.

Running the examples

Prerequisites: Apache Maven

  1. Download this repository.
  2. Save your Dropbox API key in a file called "test.app". See: Get a Dropbox API key, above.
  3. mvn install
  4. mvn -f examples/pom.xml compile

authorize

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.

account-info

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.)

upload-file

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.)

web-file-browser

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

dropbox-sdk-java's People

Contributors

ghajba avatar ciuffyshub avatar

Stargazers

 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.