private string Flush(byte[] buffer, int count, bool generateRequires) { if(buffer == null) throw new ArgumentNullException("buffer"); if(count > buffer.Length) throw new ArgumentOutOfRangeException("count"); if(count < 1) return null; //按需发起初始化请求 this.Initiate(); StorageMultipart multipart = null; if(generateRequires) { //创建一个上传的数据块 multipart = new StorageMultipart((int)Math.Ceiling((double)_length / _buffer.Length)); //将该数据块加入到列表中 _multiparts.Add(multipart); } //创建请求 var request = _client.CreateHttpRequest(HttpMethod.Put, _path + string.Format("?partNumber={0}&uploadId={1}", multipart.Index, _id), _extendedProperties); //保持长连接 request.Headers.Connection.Add("keep-alive"); //设置请求内容 request.Content = new ByteArrayContent(_buffer, 0, count); return _http.SendAsync(request).ContinueWith(t => { if(t.Result.IsSuccessStatusCode) { if(multipart != null) multipart.Checksum = t.Result.Headers.ETag.Tag; return t.Result.Headers.ETag.Tag; } else { if(multipart != null) multipart.SetData(_buffer, 0, count); return null; } }).Result; }
private string Flush(byte[] buffer, int count, bool generateRequires) { if (buffer == null) { throw new ArgumentNullException("buffer"); } if (count > buffer.Length) { throw new ArgumentOutOfRangeException("count"); } if (count < 1) { return(null); } //按需发起初始化请求 this.Initiate(); StorageMultipart multipart = null; if (generateRequires) { //创建一个上传的数据块 multipart = new StorageMultipart((int)Math.Ceiling((double)_length / _buffer.Length)); //将该数据块加入到列表中 _multiparts.Add(multipart); } //创建请求 var request = _client.CreateHttpRequest(HttpMethod.Put, _path + string.Format("?partNumber={0}&uploadId={1}", multipart.Index, _id), _extendedProperties); //保持长连接 request.Headers.Connection.Add("keep-alive"); //设置请求内容 request.Content = new ByteArrayContent(_buffer, 0, count); return(_client.HttpClient.SendAsync(request).ContinueWith(t => { if (t.Result.IsSuccessStatusCode) { if (multipart != null) { multipart.Checksum = t.Result.Headers.ETag.Tag; } return t.Result.Headers.ETag.Tag; } else { if (multipart != null) { multipart.SetData(_buffer, 0, count); } return null; } }).Result); }