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