[#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>
<groupId>info.frostfs.sdk</groupId>
<artifactId>client</artifactId>
<version>0.2.0</version>
<version>0.3.0</version>
</dependency>
</dependencies>
</project>

View file

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

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.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<ContainerId> containerIds = frostFSClient.listContainers();
List<ContainerId> 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<ContainerId> 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<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.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;

View file

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

View file

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

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

View file

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

View file

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

View file

@ -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<ContainerId> containerIds = frostFSClient.listContainers();
public static void example(FrostFSClient frostFSClient, CallContext callContext) {
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.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);
}
}

View file

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

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

View file

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