private static FileReferences LoadFileReferences(string dataFile) { if (!File.Exists(dataFile)) { return new FileReferences { Name = string.Empty }; } try { IList<string> data = File.ReadAllText(dataFile).Split('|'); StorjApiClient client = new StorjApiClient(apiUrl); byte[] fileListBytes = client.DownloadAsync(data.First(), data.Last()).Result; return JsonConvert.DeserializeObject<FileReferences>(Encoding.ASCII.GetString(fileListBytes)); } catch (Exception e) { return new FileReferences { Name = string.Empty }; } }
private void PersistFileReferences() { StartCommunication(); string data = JsonConvert.SerializeObject(files.Value); StorjApiClient client = new StorjApiClient(apiUrl); try { UploadedFile cloudFile = client.UploadAsync(new MemoryStream(Encoding.ASCII.GetBytes(data)), "data.dat").Result; File.WriteAllText(dataFile.Value, string.Format("{0}|{1}", cloudFile.FileHash, cloudFile.Key)); } catch (Exception e) { } finally { EndCommunication(); } }
private void EnsureUploadStarted() { lock (lockTask) { if (uploadTask == null) { StorjApiClient client = new StorjApiClient(apiUrl); if (Size > 0) { uploadTask = client.UploadStreamedAsync(Upload, fileName, Size); } else { uploadTask = client.UploadAsync(UploadAsync, fileName); } } } }
protected override async Task<Stream> DownloadStreamedAsync(StorjApiClient client, string hash, string key) { return await client.DownloadStreamedAsync(hash, key); }
protected override async Task<Stream> DownloadStreamedAsync(StorjApiClient client, string hash, string key) { // Do not provide the key to download the file encrypted return await client.DownloadStreamedAsync(hash); }
protected abstract Task<Stream> DownloadStreamedAsync(StorjApiClient client, string hash, string key);
private void EnsureDownloadStarted() { lock (lockTask) { if (downloadTask == null) { StorjApiClient client = new StorjApiClient(apiUrl); downloadTask = DownloadStreamedAsync(client, hash, key); } } }