Dropbox v2.0 API上传文件

本文关键字:文件 API v2 Dropbox | 更新日期: 2023-09-27 18:21:54

所以我需要使用c#将文件上传到我的dropbox帐户

我目前正在使用Dropbox API v2.0,这是一个相对较新的版本。

我使用的是winforms c#,Dropbox给了我以下示例代码:https://www.dropbox.com/developers/documentation/dotnet#tutorial

我需要一些帮助,但是,我不太明白如何在winforms中调用Upload。

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
        var task = Task.Run((Func<Task>)this.Upload);
        task.Wait();
    }
    async Task Upload()
    {
        DropboxClient dbx = new DropboxClient("FF5tO7fs20AAAAAAAAALcjFNxDeEpWSneNOPl6ya9276gFB7s7pUJKVI2vAxFcSs");
        var file = "159386425737-IPs.txt";
        var mem = new MemoryStream(Encoding.UTF8.GetBytes("TESTING" + IPCount.ToString()));
        try
        {
            var updated = await dbx.Files.UploadAsync(file, WriteMode.Overwrite.Instance, body: mem);
        }
        catch (Exception e)
        {
            MessageBox.Show(e.ToString());
        }
    }

我得到的错误是在这条线上

var updated = await.....

这是它抛出的运行时错误

System.ArgumentsOutOfRangeException: Specified argument was out of range of valid values.
Parameter name: Path

这个错误

Dropbox.Api.BadInputException : Error in call to API function "files/upload" : HTTP header "Dropbox-Api-Arg": path: "folder//file"" did not match parretn '/.*'

Dropbox v2.0 API上传文件

由于函数被声明为async并返回表示异步方法调用的任务,因此您只需要确保在关闭窗体之前等待task完成。试试这个。。。

private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
    var task = Upload("APPKEY", "FILELOCATION","TEXT.TXT","CONTENT TEXT HERE");
    task.Wait();
}