From 8314427dfe6642db4528e9e60193e05be71dc8bd Mon Sep 17 00:00:00 2001 From: Ori Bruk Date: Thu, 23 Jan 2025 19:25:27 +0300 Subject: [PATCH] [#2] update examples for v0.3.0 --- pom.xml | 2 +- src/main/java/info/frostfs/sdk/Main.java | 13 +++-- .../sdk/examples/ContainerExample.java | 21 +++++--- .../frostfs/sdk/examples/NetmapExample.java | 5 +- .../frostfs/sdk/examples/ObjectExample.java | 50 ++++++++++--------- .../frostfs/sdk/examples/PoolExample.java | 12 +++-- .../examples/container/ContainerCreate.java | 7 ++- .../examples/container/ContainerDelete.java | 7 ++- .../sdk/examples/container/ContainerGet.java | 7 ++- .../sdk/examples/container/ContainerList.java | 6 ++- .../sdk/examples/object/ObjectDelete.java | 8 ++- .../sdk/examples/object/ObjectGet.java | 9 ++-- .../sdk/examples/object/ObjectPut.java | 31 ++++++++++++ ...ectCreate.java => ObjectPutClientCut.java} | 13 ++--- .../sdk/examples/object/ObjectSearch.java | 8 +-- 15 files changed, 136 insertions(+), 63 deletions(-) create mode 100644 src/main/java/info/frostfs/sdk/examples/object/ObjectPut.java rename src/main/java/info/frostfs/sdk/examples/object/{ObjectCreate.java => ObjectPutClientCut.java} (64%) diff --git a/pom.xml b/pom.xml index 5d561a5..797b0bc 100644 --- a/pom.xml +++ b/pom.xml @@ -24,7 +24,7 @@ info.frostfs.sdk client - 0.2.0 + 0.3.0 \ No newline at end of file diff --git a/src/main/java/info/frostfs/sdk/Main.java b/src/main/java/info/frostfs/sdk/Main.java index 527c78a..57a4474 100644 --- a/src/main/java/info/frostfs/sdk/Main.java +++ b/src/main/java/info/frostfs/sdk/Main.java @@ -5,9 +5,14 @@ import info.frostfs.sdk.examples.NetmapExample; import info.frostfs.sdk.examples.ObjectExample; import info.frostfs.sdk.examples.PoolExample; import info.frostfs.sdk.jdo.ClientSettings; +import info.frostfs.sdk.jdo.parameters.CallContext; + +import java.util.concurrent.TimeUnit; public class Main { public static void main(String[] args) { + CallContext callContext = new CallContext(1, TimeUnit.SECONDS); + //INIT ClientSettings clientSettings = new ClientSettings( "KwHDAJ66o8FoLBjVbjP2sWBmgBMGjt7Vv4boA7xQrBoAYBE397Aq", @@ -16,15 +21,15 @@ public class Main { FrostFSClient frostFSClient = new FrostFSClient(clientSettings); //NETMAP - NetmapExample.testNetmap(frostFSClient); + NetmapExample.testNetmap(frostFSClient, callContext); //CONTAINER - ContainerExample.testContainer(frostFSClient); + ContainerExample.testContainer(frostFSClient, callContext); //OBJECT - ObjectExample.testObject(frostFSClient); + ObjectExample.testObject(frostFSClient, callContext); //POOL - PoolExample.testPool(); + PoolExample.initPool(callContext); } } diff --git a/src/main/java/info/frostfs/sdk/examples/ContainerExample.java b/src/main/java/info/frostfs/sdk/examples/ContainerExample.java index 10000c5..c1178d2 100644 --- a/src/main/java/info/frostfs/sdk/examples/ContainerExample.java +++ b/src/main/java/info/frostfs/sdk/examples/ContainerExample.java @@ -6,26 +6,33 @@ import info.frostfs.sdk.dto.container.ContainerId; import info.frostfs.sdk.dto.netmap.PlacementPolicy; import info.frostfs.sdk.dto.netmap.Replica; import info.frostfs.sdk.enums.BasicAcl; +import info.frostfs.sdk.jdo.parameters.CallContext; +import info.frostfs.sdk.jdo.parameters.container.PrmContainerCreate; +import info.frostfs.sdk.jdo.parameters.container.PrmContainerDelete; +import info.frostfs.sdk.jdo.parameters.container.PrmContainerGet; +import info.frostfs.sdk.jdo.parameters.container.PrmContainerGetAll; import java.util.List; public class ContainerExample { - public static void testContainer(FrostFSClient frostFSClient) { + public static void testContainer(FrostFSClient frostFSClient, CallContext callContext) { //LIST - List containerIds = frostFSClient.listContainers(); + List containerIds = frostFSClient.listContainers(new PrmContainerGetAll(), callContext); //CREATE var placementPolicy = new PlacementPolicy(new Replica[]{new Replica(1)}, true); - var containerId = frostFSClient.createContainer(new Container(BasicAcl.PUBLIC_RW, placementPolicy)); + var prmContainerCreate = new PrmContainerCreate(new Container(BasicAcl.PUBLIC_RW, placementPolicy)); + var containerId = frostFSClient.createContainer(prmContainerCreate, callContext); //GET - var container = frostFSClient.getContainer(containerId); - List updateContainerIds = frostFSClient.listContainers(); + var prmContainerGet = new PrmContainerGet(containerId); + var container = frostFSClient.getContainer(prmContainerGet, callContext); //DELETE - frostFSClient.deleteContainer(containerId); + var prmContainerDelete = new PrmContainerDelete(containerId); + frostFSClient.deleteContainer(prmContainerDelete, callContext); - List updateContainerIds2 = frostFSClient.listContainers(); + List updateContainerIds2 = frostFSClient.listContainers(new PrmContainerGetAll(), callContext); } } diff --git a/src/main/java/info/frostfs/sdk/examples/NetmapExample.java b/src/main/java/info/frostfs/sdk/examples/NetmapExample.java index 9f58113..9ad1750 100644 --- a/src/main/java/info/frostfs/sdk/examples/NetmapExample.java +++ b/src/main/java/info/frostfs/sdk/examples/NetmapExample.java @@ -2,11 +2,12 @@ package info.frostfs.sdk.examples; import info.frostfs.sdk.FrostFSClient; import info.frostfs.sdk.Helper; +import info.frostfs.sdk.jdo.parameters.CallContext; public class NetmapExample { - public static void testNetmap(FrostFSClient frostFSClient) { - var netmap = frostFSClient.getNetmapSnapshot(); + public static void testNetmap(FrostFSClient frostFSClient, CallContext callContext) { + var netmap = frostFSClient.getNetmapSnapshot(callContext); System.out.printf("Epoch: %s%n", netmap.getEpoch()); System.out.println("Nodes:"); var i = 0; diff --git a/src/main/java/info/frostfs/sdk/examples/ObjectExample.java b/src/main/java/info/frostfs/sdk/examples/ObjectExample.java index 1d955a4..5e457f3 100644 --- a/src/main/java/info/frostfs/sdk/examples/ObjectExample.java +++ b/src/main/java/info/frostfs/sdk/examples/ObjectExample.java @@ -11,8 +11,13 @@ import info.frostfs.sdk.dto.object.ObjectHeader; import info.frostfs.sdk.dto.object.ObjectId; import info.frostfs.sdk.enums.BasicAcl; import info.frostfs.sdk.enums.ObjectType; -import info.frostfs.sdk.exceptions.ResponseFrostFSException; -import info.frostfs.sdk.jdo.PutObjectParameters; +import info.frostfs.sdk.jdo.parameters.CallContext; +import info.frostfs.sdk.jdo.parameters.container.PrmContainerCreate; +import info.frostfs.sdk.jdo.parameters.container.PrmContainerDelete; +import info.frostfs.sdk.jdo.parameters.object.PrmObjectClientCutPut; +import info.frostfs.sdk.jdo.parameters.object.PrmObjectDelete; +import info.frostfs.sdk.jdo.parameters.object.PrmObjectGet; +import info.frostfs.sdk.jdo.parameters.object.PrmObjectSearch; import org.apache.commons.lang3.ArrayUtils; import java.io.FileInputStream; @@ -23,28 +28,34 @@ import static java.util.Objects.isNull; public class ObjectExample { - public static void testObject(FrostFSClient frostFSClient) { + public static void testObject(FrostFSClient frostFSClient, CallContext callContext) { var placementPolicy = new PlacementPolicy(new Replica[]{new Replica(1)}, true); - var containerId = frostFSClient.createContainer(new Container(BasicAcl.PUBLIC_RW, placementPolicy)); - - //SEARCH - var objects = frostFSClient.searchObjects(containerId); + var prmContainerCreate = new PrmContainerCreate(new Container(BasicAcl.PUBLIC_RW, placementPolicy)); + prmContainerCreate.getContainer().getAttributes().put("__SYSTEM__DISABLE_HOMOMORPHIC_HASHING", "false"); + var containerId = frostFSClient.createContainer(prmContainerCreate, callContext); //CREATE ObjectId oid; try (FileInputStream file = new FileInputStream("/home/ori/Desktop/DemoExample/cat.jpg")) { var attribute = new ObjectAttribute("Filename", "cat.jpg"); var cat = new ObjectHeader(containerId, ObjectType.REGULAR, attribute); - var params = new PutObjectParameters(cat, file, false, 1024); - - oid = frostFSClient.putObject(params); + var prmObjectPut = PrmObjectClientCutPut.builder() + .objectHeader(cat) + .payload(file) + .bufferMaxSize(1024) + .build(); + oid = frostFSClient.putClientCutObject(prmObjectPut, callContext); } catch (IOException e) { throw new RuntimeException(e); } + //SEARCH + var prmObjectSearch = new PrmObjectSearch(containerId); + var objects = frostFSClient.searchObjects(prmObjectSearch, callContext); + //GET - var newObjects = frostFSClient.searchObjects(containerId); - ObjectFrostFS object = frostFSClient.getObject(containerId, oid); + var prmObjectGet = new PrmObjectGet(containerId, oid); + ObjectFrostFS object = frostFSClient.getObject(prmObjectGet, callContext); var reader = object.getObjectReader(); var chunk = reader.readChunk(); @@ -63,17 +74,10 @@ public class ObjectExample { } //DELETE - newObjects = frostFSClient.searchObjects(containerId); - ObjectFrostFS object3 = frostFSClient.getObject(containerId, newObjects.iterator().next()); + var prmObjectDelete = new PrmObjectDelete(containerId, oid); + frostFSClient.deleteObject(prmObjectDelete, callContext); - - try { - ObjectFrostFS object2 = frostFSClient.getObject(containerId, oid); - } catch (ResponseFrostFSException exp) { - System.out.println(exp.getMessage()); - } - - - frostFSClient.deleteContainer(containerId); + var prmContainerDelete = new PrmContainerDelete(containerId); + frostFSClient.deleteContainer(prmContainerDelete, callContext); } } diff --git a/src/main/java/info/frostfs/sdk/examples/PoolExample.java b/src/main/java/info/frostfs/sdk/examples/PoolExample.java index b78bec7..ed68f8e 100644 --- a/src/main/java/info/frostfs/sdk/examples/PoolExample.java +++ b/src/main/java/info/frostfs/sdk/examples/PoolExample.java @@ -5,13 +5,15 @@ import info.frostfs.sdk.dto.netmap.PlacementPolicy; import info.frostfs.sdk.dto.netmap.Replica; import info.frostfs.sdk.enums.BasicAcl; import info.frostfs.sdk.jdo.ECDsa; +import info.frostfs.sdk.jdo.parameters.CallContext; +import info.frostfs.sdk.jdo.parameters.container.PrmContainerCreate; import info.frostfs.sdk.jdo.pool.NodeParameters; import info.frostfs.sdk.jdo.pool.PoolInitParameters; import info.frostfs.sdk.pool.Pool; public class PoolExample { - public static void testPool() { + public static void initPool(CallContext callContext) { //Init var nodeParam1 = new NodeParameters(1, "http://ip1:8080", 1); var nodeParam2 = new NodeParameters(1, "http://ip2:8080", 1); @@ -26,13 +28,15 @@ public class PoolExample { Pool pool = new Pool(initParameters); //Dial (Required!) - pool.dial(); + pool.dial(callContext); //Operations - var netmap = pool.getNetmapSnapshot(); + var netmap = pool.getNetmapSnapshot(callContext); var placementPolicy = new PlacementPolicy(new Replica[]{new Replica(4)}, true); - var containerId = pool.createContainer(new Container(BasicAcl.PUBLIC_RW, placementPolicy)); + var prmContainerCreate = new PrmContainerCreate(new Container(BasicAcl.PUBLIC_RW, placementPolicy)); + + var containerId = pool.createContainer(prmContainerCreate, callContext); //ETC } } \ No newline at end of file diff --git a/src/main/java/info/frostfs/sdk/examples/container/ContainerCreate.java b/src/main/java/info/frostfs/sdk/examples/container/ContainerCreate.java index ea71e03..75eeb90 100644 --- a/src/main/java/info/frostfs/sdk/examples/container/ContainerCreate.java +++ b/src/main/java/info/frostfs/sdk/examples/container/ContainerCreate.java @@ -5,11 +5,14 @@ import info.frostfs.sdk.dto.container.Container; import info.frostfs.sdk.dto.netmap.PlacementPolicy; import info.frostfs.sdk.dto.netmap.Replica; import info.frostfs.sdk.enums.BasicAcl; +import info.frostfs.sdk.jdo.parameters.CallContext; +import info.frostfs.sdk.jdo.parameters.container.PrmContainerCreate; public class ContainerCreate { - public static void example(FrostFSClient frostFSClient) { + public static void example(FrostFSClient frostFSClient, CallContext callContext) { var placementPolicy = new PlacementPolicy(new Replica[]{new Replica(1)}, true); - var containerId = frostFSClient.createContainer(new Container(BasicAcl.PUBLIC_RW, placementPolicy)); + var prmContainerCreate = new PrmContainerCreate(new Container(BasicAcl.PUBLIC_RW, placementPolicy)); + var containerId = frostFSClient.createContainer(prmContainerCreate, callContext); } } diff --git a/src/main/java/info/frostfs/sdk/examples/container/ContainerDelete.java b/src/main/java/info/frostfs/sdk/examples/container/ContainerDelete.java index 8761b13..a7adb5e 100644 --- a/src/main/java/info/frostfs/sdk/examples/container/ContainerDelete.java +++ b/src/main/java/info/frostfs/sdk/examples/container/ContainerDelete.java @@ -2,10 +2,13 @@ package info.frostfs.sdk.examples.container; import info.frostfs.sdk.FrostFSClient; import info.frostfs.sdk.dto.container.ContainerId; +import info.frostfs.sdk.jdo.parameters.CallContext; +import info.frostfs.sdk.jdo.parameters.container.PrmContainerDelete; public class ContainerDelete { - public static void example(FrostFSClient frostFSClient, ContainerId containerId) { - frostFSClient.deleteContainer(containerId); + public static void example(FrostFSClient frostFSClient, ContainerId containerId, CallContext callContext) { + var prmContainerDelete = new PrmContainerDelete(containerId); + frostFSClient.deleteContainer(prmContainerDelete, callContext); } } diff --git a/src/main/java/info/frostfs/sdk/examples/container/ContainerGet.java b/src/main/java/info/frostfs/sdk/examples/container/ContainerGet.java index 4b26ac3..0a469c5 100644 --- a/src/main/java/info/frostfs/sdk/examples/container/ContainerGet.java +++ b/src/main/java/info/frostfs/sdk/examples/container/ContainerGet.java @@ -2,10 +2,13 @@ package info.frostfs.sdk.examples.container; import info.frostfs.sdk.FrostFSClient; import info.frostfs.sdk.dto.container.ContainerId; +import info.frostfs.sdk.jdo.parameters.CallContext; +import info.frostfs.sdk.jdo.parameters.container.PrmContainerGet; public class ContainerGet { - public static void example(FrostFSClient frostFSClient, ContainerId containerId) { - var container = frostFSClient.getContainer(containerId); + public static void example(FrostFSClient frostFSClient, ContainerId containerId, CallContext callContext) { + var prmContainerGet = new PrmContainerGet(containerId); + var container = frostFSClient.getContainer(prmContainerGet, callContext); } } diff --git a/src/main/java/info/frostfs/sdk/examples/container/ContainerList.java b/src/main/java/info/frostfs/sdk/examples/container/ContainerList.java index fa00642..e22a9b7 100644 --- a/src/main/java/info/frostfs/sdk/examples/container/ContainerList.java +++ b/src/main/java/info/frostfs/sdk/examples/container/ContainerList.java @@ -2,12 +2,14 @@ package info.frostfs.sdk.examples.container; import info.frostfs.sdk.FrostFSClient; import info.frostfs.sdk.dto.container.ContainerId; +import info.frostfs.sdk.jdo.parameters.CallContext; +import info.frostfs.sdk.jdo.parameters.container.PrmContainerGetAll; import java.util.List; public class ContainerList { - public static void example(FrostFSClient frostFSClient) { - List containerIds = frostFSClient.listContainers(); + public static void example(FrostFSClient frostFSClient, CallContext callContext) { + List containerIds = frostFSClient.listContainers(new PrmContainerGetAll(), callContext); } } diff --git a/src/main/java/info/frostfs/sdk/examples/object/ObjectDelete.java b/src/main/java/info/frostfs/sdk/examples/object/ObjectDelete.java index 8029347..1427212 100644 --- a/src/main/java/info/frostfs/sdk/examples/object/ObjectDelete.java +++ b/src/main/java/info/frostfs/sdk/examples/object/ObjectDelete.java @@ -3,10 +3,14 @@ package info.frostfs.sdk.examples.object; import info.frostfs.sdk.FrostFSClient; import info.frostfs.sdk.dto.container.ContainerId; import info.frostfs.sdk.dto.object.ObjectId; +import info.frostfs.sdk.jdo.parameters.CallContext; +import info.frostfs.sdk.jdo.parameters.object.PrmObjectDelete; public class ObjectDelete { - public static void example(FrostFSClient frostFSClient, ContainerId containerId, ObjectId objectId) { - frostFSClient.deleteObject(containerId, objectId); + public static void example(FrostFSClient frostFSClient, ContainerId containerId, ObjectId objectId, + CallContext callContext) { + var prmObjectDelete = new PrmObjectDelete(containerId, objectId); + frostFSClient.deleteObject(prmObjectDelete, callContext); } } diff --git a/src/main/java/info/frostfs/sdk/examples/object/ObjectGet.java b/src/main/java/info/frostfs/sdk/examples/object/ObjectGet.java index 3930d10..8bfbfed 100644 --- a/src/main/java/info/frostfs/sdk/examples/object/ObjectGet.java +++ b/src/main/java/info/frostfs/sdk/examples/object/ObjectGet.java @@ -5,14 +5,18 @@ import info.frostfs.sdk.FrostFSClient; import info.frostfs.sdk.dto.container.ContainerId; import info.frostfs.sdk.dto.object.ObjectFrostFS; import info.frostfs.sdk.dto.object.ObjectId; +import info.frostfs.sdk.jdo.parameters.CallContext; +import info.frostfs.sdk.jdo.parameters.object.PrmObjectGet; import org.apache.commons.lang3.ArrayUtils; import static java.util.Objects.isNull; public class ObjectGet { - public static void exampleStream(FrostFSClient frostFSClient, ContainerId containerId, ObjectId objectId) { - ObjectFrostFS object = frostFSClient.getObject(containerId, objectId); + public static void exampleStream(FrostFSClient frostFSClient, ContainerId containerId, ObjectId objectId, + CallContext callContext) { + var prmObjectGet = new PrmObjectGet(containerId, objectId); + ObjectFrostFS object = frostFSClient.getObject(prmObjectGet, callContext); var reader = object.getObjectReader(); var chunk = reader.readChunk(); @@ -24,6 +28,5 @@ public class ObjectGet { chunk = object.getObjectReader().readChunk(); length = ArrayUtils.isEmpty(chunk) ? 0 : chunk.length; } - } } diff --git a/src/main/java/info/frostfs/sdk/examples/object/ObjectPut.java b/src/main/java/info/frostfs/sdk/examples/object/ObjectPut.java new file mode 100644 index 0000000..1bdf5cf --- /dev/null +++ b/src/main/java/info/frostfs/sdk/examples/object/ObjectPut.java @@ -0,0 +1,31 @@ +package info.frostfs.sdk.examples.object; + +import info.frostfs.sdk.FrostFSClient; +import info.frostfs.sdk.dto.container.ContainerId; +import info.frostfs.sdk.dto.object.ObjectAttribute; +import info.frostfs.sdk.dto.object.ObjectHeader; +import info.frostfs.sdk.dto.object.ObjectId; +import info.frostfs.sdk.enums.ObjectType; +import info.frostfs.sdk.jdo.parameters.CallContext; +import info.frostfs.sdk.jdo.parameters.object.PrmObjectPut; + +import java.io.FileInputStream; +import java.io.IOException; + +public class ObjectPut { + + public static void exampleStream(FrostFSClient frostFSClient, ContainerId containerId, CallContext callContext) { + ObjectId oid; + try (FileInputStream file = new FileInputStream("/home/ori/Desktop/DemoExample/cat.jpg")) { + var attribute = new ObjectAttribute("Filename", "cat.jpg"); + var cat = new ObjectHeader(containerId, ObjectType.REGULAR, attribute); + var prmObjectPut = PrmObjectPut.builder().objectHeader(cat).build(); + var writer = frostFSClient.putObject(prmObjectPut, callContext); + + writer.write(file.readAllBytes()); + oid = writer.complete(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } +} diff --git a/src/main/java/info/frostfs/sdk/examples/object/ObjectCreate.java b/src/main/java/info/frostfs/sdk/examples/object/ObjectPutClientCut.java similarity index 64% rename from src/main/java/info/frostfs/sdk/examples/object/ObjectCreate.java rename to src/main/java/info/frostfs/sdk/examples/object/ObjectPutClientCut.java index 12b1825..29c396c 100644 --- a/src/main/java/info/frostfs/sdk/examples/object/ObjectCreate.java +++ b/src/main/java/info/frostfs/sdk/examples/object/ObjectPutClientCut.java @@ -6,20 +6,21 @@ import info.frostfs.sdk.dto.object.ObjectAttribute; import info.frostfs.sdk.dto.object.ObjectHeader; import info.frostfs.sdk.dto.object.ObjectId; import info.frostfs.sdk.enums.ObjectType; -import info.frostfs.sdk.jdo.PutObjectParameters; +import info.frostfs.sdk.jdo.parameters.CallContext; +import info.frostfs.sdk.jdo.parameters.object.PrmObjectClientCutPut; import java.io.FileInputStream; import java.io.IOException; -public class ObjectCreate { +public class ObjectPutClientCut { - public static void exampleStream(FrostFSClient frostFSClient, ContainerId containerId) { + public static void exampleStream(FrostFSClient frostFSClient, ContainerId containerId, CallContext callContext) { + ObjectId oid; try (FileInputStream file = new FileInputStream("/home/ori/Desktop/DemoExample/cat.jpg")) { var attribute = new ObjectAttribute("Filename", "cat.jpg"); var cat = new ObjectHeader(containerId, ObjectType.REGULAR, attribute); - var params = new PutObjectParameters(cat, file, false, 1024); - - ObjectId objectId = frostFSClient.putObject(params); + var prmObjectPut = PrmObjectClientCutPut.builder().objectHeader(cat).payload(file).bufferMaxSize(1024).build(); + oid = frostFSClient.putClientCutObject(prmObjectPut, callContext); } catch (IOException e) { throw new RuntimeException(e); } diff --git a/src/main/java/info/frostfs/sdk/examples/object/ObjectSearch.java b/src/main/java/info/frostfs/sdk/examples/object/ObjectSearch.java index 476a22e..781d3e9 100644 --- a/src/main/java/info/frostfs/sdk/examples/object/ObjectSearch.java +++ b/src/main/java/info/frostfs/sdk/examples/object/ObjectSearch.java @@ -2,11 +2,13 @@ package info.frostfs.sdk.examples.object; import info.frostfs.sdk.FrostFSClient; import info.frostfs.sdk.dto.container.ContainerId; -import info.frostfs.sdk.dto.object.ObjectId; +import info.frostfs.sdk.jdo.parameters.CallContext; +import info.frostfs.sdk.jdo.parameters.object.PrmObjectSearch; public class ObjectSearch { - public static void example(FrostFSClient frostFSClient, ContainerId containerId) { - Iterable objects = frostFSClient.searchObjects(containerId); + public static void example(FrostFSClient frostFSClient, ContainerId containerId, CallContext callContext) { + var prmObjectSearch = new PrmObjectSearch(containerId); + var objects = frostFSClient.searchObjects(prmObjectSearch, callContext); } }