private async void Backup(string folder) { int code = 0; try { var directoryInfo = new DirectoryInfo(folder); if (!directoryInfo.Exists) { directoryInfo.Create(); } var service = new Services.SI.SIStorageService(); var packages = await service.GetPackagesAsync(); using (var client = new HttpClient()) { foreach (var package in packages) { var uri = await service.GetPackageByIDAsync(package.ID); var fileName = Path.GetFileName(Uri.UnescapeDataString(uri.ToString())); var targetFile = Path.Combine(folder, fileName); using (var stream = await client.GetStreamAsync(uri)) using (var fileStream = File.Create(targetFile)) { await stream.CopyToAsync(fileStream); } } } } catch (Exception exc) { Console.Write(exc.ToString()); code = 1; } finally { Environment.Exit(code); } }
public SIStoragePackageProvider(string serverAddress, string storageOriginsPath, string storageUrl) { _service = new Services.SI.SIStorageService(serverAddress); _storageOriginsPath = storageOriginsPath; _storageUrl = storageUrl; }