File Uploads via Dropbox Api V2

后端 未结 2 536
野的像风
野的像风 2021-01-21 08:16

Previously I was using the Dropbox API V1 within my web app to upload files my dropbox account. Please note that the app uses only one dropbox account (mine) to

相关标签:
2条回答
  • 2021-01-21 08:34

    I encourage you to use existing nodejs dropbox packages, which hides abstraction of an authentication process, etc. under the hood.

    Check official dropbox-sdk-js or try my tiny package dropbox-v2-api. Quick example:

    const dropboxV2Api = require('dropbox-v2-api');
    
    //create session
    const dropbox = dropboxV2Api.authenticate({
        token: 'TOKEN HERE'
    });
    
    //create upload stream
    const uploadStream = dropbox({
        resource: 'files/upload',
        parameters: {
            path: '/dropbox/path/to/file.txt'
        }
    }, (err, result) => {
        // upload completed
    });
    
    //use nodejs stream
    fs.createReadStream('path/to/file.txt').pipe(uploadStream);
    
    0 讨论(0)
  • 2021-01-21 08:39

    My recommendation is also to use a SDK which abstracts over authentication. CloudRail for Node.js could be very useful here. It's quite easy to use and works for other providers like OneDrive as well.

    const cloudrail = require("cloudrail-si");
    
    const service = new cloudrail.services.Dropbox(
        cloudrail.RedirectReceivers.getLocalAuthenticator(8082),
        "[Dropbox Client Identifier]",
        "[Dropbox Client Secret]",
        "http://localhost:8082/auth",
        "someState"
    );
    
    service.upload(
        "/myFolder/myFile.png",
        readableStream,
        1024,
        true,
        (error) => {
            // Check for potential error
        }
    );
    

    Here is also a short article about the {“error”: “v1_retired”} issue.

    0 讨论(0)
提交回复
热议问题