【问题标题】:Uploading large files to dropbox in chunks using dropnet使用 dropnet 将大文件分块上传到 Dropbox
【发布时间】:2013-09-09 04:46:04
【问题描述】:

我最近尝试使用 Dropnet API 在我的 C# 项目中连接 Dropbox 应用。一切正常,但我想通过 chunkupload 请求上传大文件。

public void FileUpload()
{
    string file = @"E:\threading.pdf";
    int chunkSize = 1 * 1024 * 1024;

    var buffer = new byte[chunkSize];
    int bytesRead;
    int chunkCount = 0;
    ChunkedUpload chunkupload = null;            

    using (var fileStream = new FileStream(file, FileMode.Open, FileAccess.Read))
    {
        while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) > 0)
        {
            chunkCount++;
            if (chunkCount == 1)
            {
                chunkupload = client.StartChunkedUpload(buffer);
            }
            else
            {
                chunkupload = client.AppendChunkedUpload(chunkupload, buffer);
            }
        }
    }
    var metadata = client.CommitChunkedUpload(chunkupload, "/threading.pdf", true);           
 }

文件大小为 1.6 MB。当我检查时,第一个块包含 1 MB,第二个块包含 0.6MB,但每个块中仅上传 13 个字节的数据。谁能在这里指出问题。

【问题讨论】:

  • 看来您需要另一个大小为 bytesRead 的缓冲区,因为 dropnet api 不采用长度参数,对于某些块,您最终会在缓冲区末尾出现垃圾。

标签: dropbox dropnet


【解决方案1】:

将 RestSharp 更新到 104.4.0 以解决此问题。

【讨论】:

    【解决方案2】:

    Dropnet 使用的 RestSharper 存在问题。 每个上传的块恰好上传 13 个字节 'System.Byte[]'

    问题是字节数​​组使用方法'AddParameter'转换为字符串。

    我没有挖掘太多。我正在尝试使用 UploadFile 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-21
      • 1970-01-01
      相关资源
      最近更新 更多