forked from TrueCloudLab/frostfs-sdk-java
WIP: Java implementation of FrostFS SDK
73d5e6d72d
Signed-off-by: Ori Bruk <o.bruk@yadro.com> |
||
---|---|---|
.forgejo/workflows | ||
client | ||
cryptography | ||
exceptions | ||
models | ||
protos | ||
.gitignore | ||
checkstyle.xml | ||
CONTRIBUTING.md | ||
LICENSE | ||
pom.xml | ||
README.md |
frostfs-sdk-java
Java implementation of FrostFS SDK
Prerequisites
Get the key for your wallet
- Get the address
cat <path_to_your_wallet> | jq .accounts[0].address | tr -d '"'
- Get the key
neo-go wallet export -w <path_to_your_wallet> -d <address_from_p1>
Example usage
Container operations
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.ClientSettings;
import info.frostfs.sdk.FrostFSClient;
public class ContainerExample {
public void example() {
ClientSettings clientSettings = new ClientSettings(<your_key>, <your_host>);
FrostFSClient frostFSClient = new FrostFSClient(clientSettings);
// Create container
var placementPolicy = new PlacementPolicy(new Replica[]{new Replica(1)}, Boolean.TRUE);
var containerId = frostFSClient.createContainer(new Container(BasicAcl.PUBLIC_RW, placementPolicy));
// Get container
var container = frostFSClient.getContainer(containerId);
// List containers
var containerIds = frostFSClient.listContainers();
// Delete container
frostFSClient.deleteContainer(containerId);
}
}
Object operations
import info.frostfs.sdk.enums.ObjectType;
import info.frostfs.sdk.dto.container.ContainerId;
import info.frostfs.sdk.dto.object.ObjectAttribute;
import info.frostfs.sdk.dto.object.ObjectFilter;
import info.frostfs.sdk.dto.object.ObjectHeader;
import info.frostfs.sdk.dto.object.ObjectId;
import info.frostfs.sdk.jdo.PutObjectParameters;
import info.frostfs.sdk.FrostFSClient;
import java.io.FileInputStream;
import java.io.IOException;
public class ObjectExample {
public void example() {
ClientSettings clientSettings = new ClientSettings(<your_key>, <your_host>);
FrostFSClient frostFSClient = new FrostFSClient(clientSettings);
// Put object
ObjectId objectId;
try (FileInputStream fis = new FileInputStream("cat.jpg")) {
var cat = new ObjectHeader(
containerId, ObjectType.REGULAR, new ObjectAttribute[]{new ObjectAttribute("Filename", "cat.jpg")}
);
var params = new PutObjectParameters(cat, fis);
objectId = frostFSClient.putObject(params);
} catch (IOException e) {
throw new RuntimeException(e);
}
// Get object
var obj = frostFSClient.getObject(containerId, objectId);
// Get object header
var objectHeader = frostFSClient.getObjectHead(containerId, objectId);
// Search regular objects
var objectIds = frostFSClient.searchObjects(containerId, new ObjectFilter.FilterByRootObject());
}
}