[#2] update examples for v0.3.0

This commit is contained in:
Ori Bruk 2025-01-23 19:25:27 +03:00
parent 8404943e0f
commit 8314427dfe
15 changed files with 136 additions and 63 deletions

View file

@ -24,7 +24,7 @@
<dependency> <dependency>
<groupId>info.frostfs.sdk</groupId> <groupId>info.frostfs.sdk</groupId>
<artifactId>client</artifactId> <artifactId>client</artifactId>
<version>0.2.0</version> <version>0.3.0</version>
</dependency> </dependency>
</dependencies> </dependencies>
</project> </project>

View file

@ -5,9 +5,14 @@ import info.frostfs.sdk.examples.NetmapExample;
import info.frostfs.sdk.examples.ObjectExample; import info.frostfs.sdk.examples.ObjectExample;
import info.frostfs.sdk.examples.PoolExample; import info.frostfs.sdk.examples.PoolExample;
import info.frostfs.sdk.jdo.ClientSettings; import info.frostfs.sdk.jdo.ClientSettings;
import info.frostfs.sdk.jdo.parameters.CallContext;
import java.util.concurrent.TimeUnit;
public class Main { public class Main {
public static void main(String[] args) { public static void main(String[] args) {
CallContext callContext = new CallContext(1, TimeUnit.SECONDS);
//INIT //INIT
ClientSettings clientSettings = new ClientSettings( ClientSettings clientSettings = new ClientSettings(
"KwHDAJ66o8FoLBjVbjP2sWBmgBMGjt7Vv4boA7xQrBoAYBE397Aq", "KwHDAJ66o8FoLBjVbjP2sWBmgBMGjt7Vv4boA7xQrBoAYBE397Aq",
@ -16,15 +21,15 @@ public class Main {
FrostFSClient frostFSClient = new FrostFSClient(clientSettings); FrostFSClient frostFSClient = new FrostFSClient(clientSettings);
//NETMAP //NETMAP
NetmapExample.testNetmap(frostFSClient); NetmapExample.testNetmap(frostFSClient, callContext);
//CONTAINER //CONTAINER
ContainerExample.testContainer(frostFSClient); ContainerExample.testContainer(frostFSClient, callContext);
//OBJECT //OBJECT
ObjectExample.testObject(frostFSClient); ObjectExample.testObject(frostFSClient, callContext);
//POOL //POOL
PoolExample.testPool(); PoolExample.initPool(callContext);
} }
} }

View file

@ -6,26 +6,33 @@ import info.frostfs.sdk.dto.container.ContainerId;
import info.frostfs.sdk.dto.netmap.PlacementPolicy; import info.frostfs.sdk.dto.netmap.PlacementPolicy;
import info.frostfs.sdk.dto.netmap.Replica; import info.frostfs.sdk.dto.netmap.Replica;
import info.frostfs.sdk.enums.BasicAcl; 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; import java.util.List;
public class ContainerExample { public class ContainerExample {
public static void testContainer(FrostFSClient frostFSClient) { public static void testContainer(FrostFSClient frostFSClient, CallContext callContext) {
//LIST //LIST
List<ContainerId> containerIds = frostFSClient.listContainers(); List<ContainerId> containerIds = frostFSClient.listContainers(new PrmContainerGetAll(), callContext);
//CREATE //CREATE
var placementPolicy = new PlacementPolicy(new Replica[]{new Replica(1)}, true); 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 //GET
var container = frostFSClient.getContainer(containerId); var prmContainerGet = new PrmContainerGet(containerId);
List<ContainerId> updateContainerIds = frostFSClient.listContainers(); var container = frostFSClient.getContainer(prmContainerGet, callContext);
//DELETE //DELETE
frostFSClient.deleteContainer(containerId); var prmContainerDelete = new PrmContainerDelete(containerId);
frostFSClient.deleteContainer(prmContainerDelete, callContext);
List<ContainerId> updateContainerIds2 = frostFSClient.listContainers(); List<ContainerId> updateContainerIds2 = frostFSClient.listContainers(new PrmContainerGetAll(), callContext);
} }
} }

View file

@ -2,11 +2,12 @@ package info.frostfs.sdk.examples;
import info.frostfs.sdk.FrostFSClient; import info.frostfs.sdk.FrostFSClient;
import info.frostfs.sdk.Helper; import info.frostfs.sdk.Helper;
import info.frostfs.sdk.jdo.parameters.CallContext;
public class NetmapExample { public class NetmapExample {
public static void testNetmap(FrostFSClient frostFSClient) { public static void testNetmap(FrostFSClient frostFSClient, CallContext callContext) {
var netmap = frostFSClient.getNetmapSnapshot(); var netmap = frostFSClient.getNetmapSnapshot(callContext);
System.out.printf("Epoch: %s%n", netmap.getEpoch()); System.out.printf("Epoch: %s%n", netmap.getEpoch());
System.out.println("Nodes:"); System.out.println("Nodes:");
var i = 0; var i = 0;

View file

@ -11,8 +11,13 @@ import info.frostfs.sdk.dto.object.ObjectHeader;
import info.frostfs.sdk.dto.object.ObjectId; import info.frostfs.sdk.dto.object.ObjectId;
import info.frostfs.sdk.enums.BasicAcl; import info.frostfs.sdk.enums.BasicAcl;
import info.frostfs.sdk.enums.ObjectType; import info.frostfs.sdk.enums.ObjectType;
import info.frostfs.sdk.exceptions.ResponseFrostFSException; import info.frostfs.sdk.jdo.parameters.CallContext;
import info.frostfs.sdk.jdo.PutObjectParameters; 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 org.apache.commons.lang3.ArrayUtils;
import java.io.FileInputStream; import java.io.FileInputStream;
@ -23,28 +28,34 @@ import static java.util.Objects.isNull;
public class ObjectExample { 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 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));
prmContainerCreate.getContainer().getAttributes().put("__SYSTEM__DISABLE_HOMOMORPHIC_HASHING", "false");
//SEARCH var containerId = frostFSClient.createContainer(prmContainerCreate, callContext);
var objects = frostFSClient.searchObjects(containerId);
//CREATE //CREATE
ObjectId oid; ObjectId oid;
try (FileInputStream file = new FileInputStream("/home/ori/Desktop/DemoExample/cat.jpg")) { try (FileInputStream file = new FileInputStream("/home/ori/Desktop/DemoExample/cat.jpg")) {
var attribute = new ObjectAttribute("Filename", "cat.jpg"); var attribute = new ObjectAttribute("Filename", "cat.jpg");
var cat = new ObjectHeader(containerId, ObjectType.REGULAR, attribute); var cat = new ObjectHeader(containerId, ObjectType.REGULAR, attribute);
var params = new PutObjectParameters(cat, file, false, 1024); var prmObjectPut = PrmObjectClientCutPut.builder()
.objectHeader(cat)
oid = frostFSClient.putObject(params); .payload(file)
.bufferMaxSize(1024)
.build();
oid = frostFSClient.putClientCutObject(prmObjectPut, callContext);
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }
//SEARCH
var prmObjectSearch = new PrmObjectSearch(containerId);
var objects = frostFSClient.searchObjects(prmObjectSearch, callContext);
//GET //GET
var newObjects = frostFSClient.searchObjects(containerId); var prmObjectGet = new PrmObjectGet(containerId, oid);
ObjectFrostFS object = frostFSClient.getObject(containerId, oid); ObjectFrostFS object = frostFSClient.getObject(prmObjectGet, callContext);
var reader = object.getObjectReader(); var reader = object.getObjectReader();
var chunk = reader.readChunk(); var chunk = reader.readChunk();
@ -63,17 +74,10 @@ public class ObjectExample {
} }
//DELETE //DELETE
newObjects = frostFSClient.searchObjects(containerId); var prmObjectDelete = new PrmObjectDelete(containerId, oid);
ObjectFrostFS object3 = frostFSClient.getObject(containerId, newObjects.iterator().next()); frostFSClient.deleteObject(prmObjectDelete, callContext);
var prmContainerDelete = new PrmContainerDelete(containerId);
try { frostFSClient.deleteContainer(prmContainerDelete, callContext);
ObjectFrostFS object2 = frostFSClient.getObject(containerId, oid);
} catch (ResponseFrostFSException exp) {
System.out.println(exp.getMessage());
}
frostFSClient.deleteContainer(containerId);
} }
} }

View file

@ -5,13 +5,15 @@ import info.frostfs.sdk.dto.netmap.PlacementPolicy;
import info.frostfs.sdk.dto.netmap.Replica; import info.frostfs.sdk.dto.netmap.Replica;
import info.frostfs.sdk.enums.BasicAcl; import info.frostfs.sdk.enums.BasicAcl;
import info.frostfs.sdk.jdo.ECDsa; 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.NodeParameters;
import info.frostfs.sdk.jdo.pool.PoolInitParameters; import info.frostfs.sdk.jdo.pool.PoolInitParameters;
import info.frostfs.sdk.pool.Pool; import info.frostfs.sdk.pool.Pool;
public class PoolExample { public class PoolExample {
public static void testPool() { public static void initPool(CallContext callContext) {
//Init //Init
var nodeParam1 = new NodeParameters(1, "http://ip1:8080", 1); var nodeParam1 = new NodeParameters(1, "http://ip1:8080", 1);
var nodeParam2 = new NodeParameters(1, "http://ip2:8080", 1); var nodeParam2 = new NodeParameters(1, "http://ip2:8080", 1);
@ -26,13 +28,15 @@ public class PoolExample {
Pool pool = new Pool(initParameters); Pool pool = new Pool(initParameters);
//Dial (Required!) //Dial (Required!)
pool.dial(); pool.dial(callContext);
//Operations //Operations
var netmap = pool.getNetmapSnapshot(); var netmap = pool.getNetmapSnapshot(callContext);
var placementPolicy = new PlacementPolicy(new Replica[]{new Replica(4)}, true); 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 //ETC
} }
} }

View file

@ -5,11 +5,14 @@ import info.frostfs.sdk.dto.container.Container;
import info.frostfs.sdk.dto.netmap.PlacementPolicy; import info.frostfs.sdk.dto.netmap.PlacementPolicy;
import info.frostfs.sdk.dto.netmap.Replica; import info.frostfs.sdk.dto.netmap.Replica;
import info.frostfs.sdk.enums.BasicAcl; 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 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 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);
} }
} }

View file

@ -2,10 +2,13 @@ package info.frostfs.sdk.examples.container;
import info.frostfs.sdk.FrostFSClient; import info.frostfs.sdk.FrostFSClient;
import info.frostfs.sdk.dto.container.ContainerId; 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 class ContainerDelete {
public static void example(FrostFSClient frostFSClient, ContainerId containerId) { public static void example(FrostFSClient frostFSClient, ContainerId containerId, CallContext callContext) {
frostFSClient.deleteContainer(containerId); var prmContainerDelete = new PrmContainerDelete(containerId);
frostFSClient.deleteContainer(prmContainerDelete, callContext);
} }
} }

View file

@ -2,10 +2,13 @@ package info.frostfs.sdk.examples.container;
import info.frostfs.sdk.FrostFSClient; import info.frostfs.sdk.FrostFSClient;
import info.frostfs.sdk.dto.container.ContainerId; 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 class ContainerGet {
public static void example(FrostFSClient frostFSClient, ContainerId containerId) { public static void example(FrostFSClient frostFSClient, ContainerId containerId, CallContext callContext) {
var container = frostFSClient.getContainer(containerId); var prmContainerGet = new PrmContainerGet(containerId);
var container = frostFSClient.getContainer(prmContainerGet, callContext);
} }
} }

View file

@ -2,12 +2,14 @@ package info.frostfs.sdk.examples.container;
import info.frostfs.sdk.FrostFSClient; import info.frostfs.sdk.FrostFSClient;
import info.frostfs.sdk.dto.container.ContainerId; 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; import java.util.List;
public class ContainerList { public class ContainerList {
public static void example(FrostFSClient frostFSClient) { public static void example(FrostFSClient frostFSClient, CallContext callContext) {
List<ContainerId> containerIds = frostFSClient.listContainers(); List<ContainerId> containerIds = frostFSClient.listContainers(new PrmContainerGetAll(), callContext);
} }
} }

View file

@ -3,10 +3,14 @@ package info.frostfs.sdk.examples.object;
import info.frostfs.sdk.FrostFSClient; import info.frostfs.sdk.FrostFSClient;
import info.frostfs.sdk.dto.container.ContainerId; import info.frostfs.sdk.dto.container.ContainerId;
import info.frostfs.sdk.dto.object.ObjectId; 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 class ObjectDelete {
public static void example(FrostFSClient frostFSClient, ContainerId containerId, ObjectId objectId) { public static void example(FrostFSClient frostFSClient, ContainerId containerId, ObjectId objectId,
frostFSClient.deleteObject(containerId, objectId); CallContext callContext) {
var prmObjectDelete = new PrmObjectDelete(containerId, objectId);
frostFSClient.deleteObject(prmObjectDelete, callContext);
} }
} }

View file

@ -5,14 +5,18 @@ import info.frostfs.sdk.FrostFSClient;
import info.frostfs.sdk.dto.container.ContainerId; import info.frostfs.sdk.dto.container.ContainerId;
import info.frostfs.sdk.dto.object.ObjectFrostFS; import info.frostfs.sdk.dto.object.ObjectFrostFS;
import info.frostfs.sdk.dto.object.ObjectId; 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 org.apache.commons.lang3.ArrayUtils;
import static java.util.Objects.isNull; import static java.util.Objects.isNull;
public class ObjectGet { public class ObjectGet {
public static void exampleStream(FrostFSClient frostFSClient, ContainerId containerId, ObjectId objectId) { public static void exampleStream(FrostFSClient frostFSClient, ContainerId containerId, ObjectId objectId,
ObjectFrostFS object = frostFSClient.getObject(containerId, objectId); CallContext callContext) {
var prmObjectGet = new PrmObjectGet(containerId, objectId);
ObjectFrostFS object = frostFSClient.getObject(prmObjectGet, callContext);
var reader = object.getObjectReader(); var reader = object.getObjectReader();
var chunk = reader.readChunk(); var chunk = reader.readChunk();
@ -24,6 +28,5 @@ public class ObjectGet {
chunk = object.getObjectReader().readChunk(); chunk = object.getObjectReader().readChunk();
length = ArrayUtils.isEmpty(chunk) ? 0 : chunk.length; length = ArrayUtils.isEmpty(chunk) ? 0 : chunk.length;
} }
} }
} }

View file

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

View file

@ -6,20 +6,21 @@ import info.frostfs.sdk.dto.object.ObjectAttribute;
import info.frostfs.sdk.dto.object.ObjectHeader; import info.frostfs.sdk.dto.object.ObjectHeader;
import info.frostfs.sdk.dto.object.ObjectId; import info.frostfs.sdk.dto.object.ObjectId;
import info.frostfs.sdk.enums.ObjectType; 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.FileInputStream;
import java.io.IOException; 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")) { try (FileInputStream file = new FileInputStream("/home/ori/Desktop/DemoExample/cat.jpg")) {
var attribute = new ObjectAttribute("Filename", "cat.jpg"); var attribute = new ObjectAttribute("Filename", "cat.jpg");
var cat = new ObjectHeader(containerId, ObjectType.REGULAR, attribute); var cat = new ObjectHeader(containerId, ObjectType.REGULAR, attribute);
var params = new PutObjectParameters(cat, file, false, 1024); var prmObjectPut = PrmObjectClientCutPut.builder().objectHeader(cat).payload(file).bufferMaxSize(1024).build();
oid = frostFSClient.putClientCutObject(prmObjectPut, callContext);
ObjectId objectId = frostFSClient.putObject(params);
} catch (IOException e) { } catch (IOException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
} }

View file

@ -2,11 +2,13 @@ package info.frostfs.sdk.examples.object;
import info.frostfs.sdk.FrostFSClient; import info.frostfs.sdk.FrostFSClient;
import info.frostfs.sdk.dto.container.ContainerId; 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 class ObjectSearch {
public static void example(FrostFSClient frostFSClient, ContainerId containerId) { public static void example(FrostFSClient frostFSClient, ContainerId containerId, CallContext callContext) {
Iterable<ObjectId> objects = frostFSClient.searchObjects(containerId); var prmObjectSearch = new PrmObjectSearch(containerId);
var objects = frostFSClient.searchObjects(prmObjectSearch, callContext);
} }
} }