0

ドロップネットを使用してファイルをドロップボックスにアップロードしています。それまでは、すべてがうまく機能していますが、小さなファイルのみです。送信に使用している次のコード:

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();
            }
        }

    }
}

平均して 50 MB を超えるファイルを送信するにはどうすればよいですか?

4

1 に答える 1

0

実際のエラーによっては、答えが変わる場合があります。つまり、メモリ不足または API からの HTTP エラーの場合です。

DropNet はファイルのチャンク アップロードをサポートしています。現時点ではドキュメントが少し不足していますが、ソースを見れば使い方がわかります。https://github.com/DropNet/DropNet/blob/master/DropNet/Client/Files.Sync.cs#L224

を呼び出しStartChunkedUploadてアップロードを開始し、 を呼び出してアップロードにAppendChunkedUploadさらにバイトを追加してから、 を呼び出してアップロードCommitChunkedUploadを完了します。可能であれば、ファイルのストリーミング読み取りでこれを使用して、メモリ使用量を減らします。

于 2014-12-21T21:19:45.713 に答える