using FrostFS.SDK.ClientV2; using FrostFS.SDK.ModelsV2; using FrostFS.SDK.ModelsV2.Enums; using FrostFS.SDK.ModelsV2.Netmap; try { var fsClient = new Client("KwHDAJ66o8FoLBjVbjP2sWBmgBMGjt7Vv4boA7xQrBoAYBE397Aq", "http://172.29.238.97:8080"); // List containers Console.WriteLine("Existing containers:"); await foreach(var cid in fsClient.ListContainersAsync()) { Console.WriteLine(cid.ToString()); // await fsClient.DeleteContainerAsync(cid); // Console.WriteLine($"REmoved container: {cid}"); } // Create container var placementPolicy = new PlacementPolicy(true, new Replica(1)); var containerId = await fsClient.CreateContainerAsync(new Container(BasicAcl.PublicRW, placementPolicy)); Console.WriteLine($"Created container: {containerId}"); Container? container = null; while(container is null) { try { container = await fsClient.GetContainerAsync(containerId); } catch { Console.WriteLine("Waiting for the container is ready"); } } var currentDir = Directory.GetCurrentDirectory(); // Put object using var fileStream = File.OpenRead("cat.jpg"); var cat = new ObjectHeader( containerId: containerId, type: ObjectType.Regular, new ObjectAttribute("Filename", "cat.jpg") ); var objectId = await fsClient.PutObjectAsync(cat, fileStream); // Get object header var objHeader = await fsClient.GetObjectHeadAsync(containerId, objectId); Console.WriteLine("Attributes:"); foreach(var attribute in objHeader.Attributes) { Console.WriteLine($"{attribute.Key}:{attribute.Value}"); } // Get object back var obj = await fsClient.GetObjectAsync(containerId, objectId); File.WriteAllBytes("downloaded.jpg", obj.Payload); Console.WriteLine("Existing containers after creating:"); await foreach(var cid in fsClient.ListContainersAsync()) { Console.WriteLine($"ContainerId: {cid} (removing...)"); await fsClient.DeleteContainerAsync(cid); } await Task.Delay(2000); await foreach(var cid in fsClient.ListContainersAsync()) { Console.WriteLine($"Container {cid} is alive!"); } } catch(Exception ex) { Console.WriteLine($"Error: {ex.Message}"); }