使用dropnet上传大文件

时间:2014-12-18 15:53:28

标签: c# dropbox-api dropnet

我正在使用dropnet将文件上传到Dropbox。在那之前一切都运行良好,但只适用于它上面的小文件。我正在使用以下代码发送:

private void btnEnviar_Click(object sender, EventArgs e)
{
    var _client = new DropNetClient("xxxxxxxxxxxxx", "xxxxxxxxxxxxxx", "xxxxxxxxxxxxx", "xxxxxxxxxxxxxxxx");
    _client.UseSandbox = true;

    string arq = "";
    string path = "";
    foreach (DataGridViewRow dr in dgvArquivos.Rows)
    {
        if (dr.Cells[0].Value != null)
        {
            arq = dr.Cells[3].Value.ToString();
            path = "//server/documentos/Scanner_/exames";
            try
            {

                var filebytes = new FileInfo(@path+"/"+arq);
                byte[] content = _client.GetFileContentFromFS(filebytes);
                var result=_client.UploadFile("/exames",arq,content);
                this.lblMsg.Text = result.ToString();
                dr.Cells[4].Value = "17/12/2014";
            }
            catch (Exception ex)
            {

                this.lblMsg.Text= ex.Message.ToString();
            }
        }

    }
}

如何发送平均大于50mb的文件?

1 个答案:

答案 0 :(得分:0)

根据实际错误,您获得的答案可能会发生变化。即,如果内存不足或来自API的HTTP错误。

DropNet确实支持您可能想要查看的文件的分块上传。目前的文档有点缺乏,但查看源代码应告诉您如何使用它。 https://github.com/DropNet/DropNet/blob/master/DropNet/Client/Files.Sync.cs#L224

拨打StartChunkedUpload以开始上传,请致电AppendChunkedUpload向上传添加更多字节,然后致电CommitChunkedUpload完成上传。如果可能,请使用此文件的流式读取来减少内存使用量。