public void UploadChunk(CommonChunkedUploadSession uploadSession, Stream stream, long length) { var tempPath = uploadSession.TempPath; var uploadId = uploadSession.UploadId; var chunkNumber = uploadSession.GetItemOrDefault <int>("ChunksUploaded") + 1; var eTag = DataStore.UploadChunk(Domain, tempPath, uploadId, stream, MaxChunkUploadSize, chunkNumber, length); uploadSession.Items["ChunksUploaded"] = chunkNumber; uploadSession.BytesUploaded += length; var eTags = uploadSession.GetItemOrDefault <List <string> >("ETag") ?? new List <string>(); eTags.Add(eTag); uploadSession.Items["ETag"] = eTags; }
public void Finalize(CommonChunkedUploadSession uploadSession) { var tempPath = uploadSession.TempPath; var uploadId = uploadSession.UploadId; var eTags = uploadSession.GetItemOrDefault <List <string> >("ETag") .Select((x, i) => new KeyValuePair <int, string>(i + 1, x)) .ToDictionary(x => x.Key, x => x.Value); DataStore.FinalizeChunkedUpload(Domain, tempPath, uploadId, eTags); }