Search in sources :

Example 16 with FileMetadata

use of com.dropbox.core.v2.files.FileMetadata in project dropbox-sdk-java by dropbox.

the class Main method main.

public static void main(String[] args) throws DbxException, IOException {
    // Create Dropbox client
    DbxRequestConfig config = new DbxRequestConfig("dropbox/java-tutorial");
    DbxClientV2 client = new DbxClientV2(config, ACCESS_TOKEN);
    // Get current account info
    FullAccount account = client.users().getCurrentAccount();
    System.out.println(account.getName().getDisplayName());
    // Get files and folder metadata from Dropbox root directory
    ListFolderResult result = client.files().listFolder("");
    while (true) {
        for (Metadata metadata : result.getEntries()) {
            System.out.println(metadata.getPathLower());
        }
        if (!result.getHasMore()) {
            break;
        }
        result = client.files().listFolderContinue(result.getCursor());
    }
    // Upload "test.txt" to Dropbox
    try (InputStream in = new FileInputStream("test.txt")) {
        FileMetadata metadata = client.files().uploadBuilder("/test.txt").uploadAndFinish(in);
    }
    DbxDownloader<FileMetadata> downloader = client.files().download("/test.txt");
    try {
        FileOutputStream out = new FileOutputStream("test.txt");
        downloader.download(out);
        out.close();
    } catch (DbxException ex) {
        System.out.println(ex.getMessage());
    }
}
Also used : DbxClientV2(com.dropbox.core.v2.DbxClientV2) DbxRequestConfig(com.dropbox.core.DbxRequestConfig) FileInputStream(java.io.FileInputStream) InputStream(java.io.InputStream) FileOutputStream(java.io.FileOutputStream) FileMetadata(com.dropbox.core.v2.files.FileMetadata) Metadata(com.dropbox.core.v2.files.Metadata) FileMetadata(com.dropbox.core.v2.files.FileMetadata) ListFolderResult(com.dropbox.core.v2.files.ListFolderResult) FullAccount(com.dropbox.core.v2.users.FullAccount) FileInputStream(java.io.FileInputStream) DbxException(com.dropbox.core.DbxException)

Example 17 with FileMetadata

use of com.dropbox.core.v2.files.FileMetadata in project dropbox-sdk-java by dropbox.

the class DbxClientV2Test method testRetrySuccessWithBackoff.

@Test
public void testRetrySuccessWithBackoff() throws Exception {
    HttpRequestor mockRequestor = mock(HttpRequestor.class);
    DbxRequestConfig config = createRequestConfig().withAutoRetryEnabled(3).withHttpRequestor(mockRequestor).build();
    DbxClientV2 client = new DbxClientV2(config, "fakeAccessToken");
    FileMetadata expected = constructFileMetadate();
    // 503 twice, then return result
    HttpRequestor.Uploader mockUploader = mockUploader();
    when(mockUploader.finish()).thenReturn(// no backoff
    createEmptyResponse(503)).thenReturn(// backoff 1 sec
    createRateLimitResponse(1)).thenReturn(// backoff 2 sec
    createRateLimitResponse(2)).thenReturn(createSuccessResponse(serialize(expected)));
    when(mockRequestor.startPost(anyString(), anyHeaders())).thenReturn(mockUploader);
    long start = System.currentTimeMillis();
    Metadata actual = client.files().getMetadata(expected.getId());
    long end = System.currentTimeMillis();
    // no way easy way to properly test this, but request should
    // have taken AT LEAST 3 seconds due to backoff.
    assertTrue((end - start) >= 3000L, "duration: " + (end - start) + " millis");
    // should have been called 4 times: initial call + 3 retries
    verify(mockRequestor, times(4)).startPost(anyString(), anyHeaders());
    assertEquals(actual.getName(), expected.getName());
    assertTrue(actual instanceof FileMetadata, actual.getClass().toString());
}
Also used : HttpRequestor(com.dropbox.core.http.HttpRequestor) DbxRequestConfig(com.dropbox.core.DbxRequestConfig) FileMetadata(com.dropbox.core.v2.files.FileMetadata) FileMetadata(com.dropbox.core.v2.files.FileMetadata) Metadata(com.dropbox.core.v2.files.Metadata) Test(org.testng.annotations.Test)

Aggregations

FileMetadata (com.dropbox.core.v2.files.FileMetadata)17 Metadata (com.dropbox.core.v2.files.Metadata)7 DbxException (com.dropbox.core.DbxException)6 Test (org.testng.annotations.Test)5 DbxRequestConfig (com.dropbox.core.DbxRequestConfig)4 FolderMetadata (com.dropbox.core.v2.files.FolderMetadata)4 ByteArrayInputStream (java.io.ByteArrayInputStream)4 IOException (java.io.IOException)4 Date (java.util.Date)4 HttpRequestor (com.dropbox.core.http.HttpRequestor)3 DbxClientV2 (com.dropbox.core.v2.DbxClientV2)3 DeletedMetadata (com.dropbox.core.v2.files.DeletedMetadata)3 ByteArrayOutputStream (java.io.ByteArrayOutputStream)3 FileInputStream (java.io.FileInputStream)3 InputStream (java.io.InputStream)3 NetworkIOException (com.dropbox.core.NetworkIOException)2 ListFolderResult (com.dropbox.core.v2.files.ListFolderResult)2 FileOutputStream (java.io.FileOutputStream)2 ProgressDialog (android.app.ProgressDialog)1 Intent (android.content.Intent)1