Exemple #1
0
        /// <summary>
        /// Save files by stream map.
        /// </summary>
        /// <param name="streamMap"></param>
        /// <returns></returns>
        public async Task <Dictionary <string, FileHandleStatus> > SaveFilesByStreamMap(Dictionary <string, Stream> streamMap)
        {
            // Assign file key
            var values = new AssignFileKeyParams(
                _fileKeyParams.Replication,
                streamMap.Count,
                _fileKeyParams.DataCenter,
                _fileKeyParams.TTL,
                _fileKeyParams.Collection
                );
            var fileKeyResult = await _masterWrapper.AssignFileKey(values);

            var uploadUrl = UsingPublicUrl ? fileKeyResult.PublicUrl : fileKeyResult.Url;
            // Upload file
            var index     = 1;
            var resultMap = new Dictionary <string, FileHandleStatus>(streamMap.Count);

            using (var enumerator = streamMap.GetEnumerator())
            {
                enumerator.MoveNext();
                var streamItem = enumerator.Current;
                resultMap.Add(streamItem.Key, await _volumeWrapper.UploadFile(uploadUrl, fileKeyResult.FileId, streamItem.Key, streamItem.Value, TTL));

                while (enumerator.MoveNext())
                {
                    streamItem = enumerator.Current;
                    resultMap.Add(streamItem.Key, await _volumeWrapper.UploadFile(uploadUrl, fileKeyResult.FileId + "_" + index++, streamItem.Key, streamItem.Value, TTL));
                }
            }
            return(resultMap);
        }
        public void AssignFileKey()
        {
            var values = new AssignFileKeyParams("000", 1, null, null, "test");
            var result = MasterWrapper.AssignFileKey(values).GetAwaiter().GetResult();

            Assert.AreEqual(values.Count, result.Count);
        }
 public OperationsTemplate(IMasterConnection master)
 {
     _masterWrapper   = new MasterWrapper(master.GetConnection());
     _volumeWrapper   = new VolumeWrapper(master.GetConnection());
     _replicationFlag = "000";
     _fileKeyParams   = new AssignFileKeyParams();
     UsingPublicUrl   = true;
     LoadBalance      = true;
 }
Exemple #4
0
        public void UploadFile()
        {
            var values = new AssignFileKeyParams();
            var result = MasterWrapper.AssignFileKey(values).GetAwaiter().GetResult();
            var size   = VolumeWrapper.UploadFile(
                result.Url,
                result.FileId,
                "test.txt",
                new MemoryStream(Encoding.ASCII.GetBytes("@uploadFile")),
                null).GetAwaiter().GetResult();

            Assert.IsTrue(size > 0);
        }
Exemple #5
0
        /// <summary>
        /// Assign a file key.
        /// </summary>
        /// <param name="values"></param>
        /// <returns></returns>
        public async Task <AssignFileKeyResult> AssignFileKey(AssignFileKeyParams values)
        {
            CheckConnection();
            var url     = _connection.LeaderUrl + RequestPathStrategy.AssignFileKey + values.ToUrlParams();
            var request = new HttpRequestMessage(
                HttpMethod.Get,
                new Uri(url)
                );
            var jsonResponse = await _connection.FetchJsonResultByRequest(request);

            var obj = JsonConvert.DeserializeObject <AssignFileKeyResult>(jsonResponse.Json, Settings.JsonSerializerSettings);

            return(obj);
        }
Exemple #6
0
        public void CheckFileExist()
        {
            var values = new AssignFileKeyParams();
            var result = MasterWrapper.AssignFileKey(values).GetAwaiter().GetResult();

            VolumeWrapper.UploadFile(
                result.Url,
                result.FileId,
                "test.txt",
                new MemoryStream(Encoding.ASCII.GetBytes("@checkFileExist")),
                null).GetAwaiter().GetResult();
            var status = VolumeWrapper.CheckFileExist(result.Url, result.FileId).GetAwaiter().GetResult();

            Assert.IsTrue(status);
        }
Exemple #7
0
        public void DeleteFile()
        {
            var values = new AssignFileKeyParams();
            var result = MasterWrapper.AssignFileKey(values).GetAwaiter().GetResult();

            VolumeWrapper.UploadFile(
                result.Url,
                result.FileId,
                "test.txt",
                new MemoryStream(Encoding.ASCII.GetBytes("@deleteFile")),
                null).GetAwaiter().GetResult();
            var fileExists = VolumeWrapper.CheckFileExist(result.Url, result.FileId).GetAwaiter().GetResult();

            VolumeWrapper.DeleteFile(result.Url, result.FileId).GetAwaiter().GetResult();
            var fileExists2 = VolumeWrapper.CheckFileExist(result.Url, result.FileId).GetAwaiter().GetResult();

            Assert.AreNotEqual(fileExists, fileExists2);
        }
Exemple #8
0
        public void GetFileStream()
        {
            var values = new AssignFileKeyParams();
            var result = MasterWrapper.AssignFileKey(values).GetAwaiter().GetResult();

            VolumeWrapper.UploadFile(
                result.Url,
                result.FileId,
                "test.txt",
                new MemoryStream(Encoding.ASCII.GetBytes("@getFileContent")),
                null).GetAwaiter().GetResult();
            var stream = VolumeWrapper.GetFileStream(result.Url, result.FileId).GetAwaiter().GetResult();

            using (var reader = new StreamReader(stream.OutputStream))
            {
                var text = reader.ReadToEnd();
                Assert.IsTrue(text.Equals("@getFileContent"));
            }
        }
        private void BuildAssignFileKeyParams()
        {
            var value = new AssignFileKeyParams(_replicationFlag, 1, _dataCenter, _timeToLive, _collection);

            _fileKeyParams = value;
        }