コード例 #1
0
        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;
        }
コード例 #2
0
        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);
        }