frostfs-sdk-csharp/README.md
Ivan Pchelintsev cbf6ad5a77 [#1] Add examples
Signed-off-by: Ivan Pchelintsev <i.pchelintsev@yadro.com>
2024-05-22 14:29:20 +03:00

1.6 KiB

frostfs-sdk-csharp

C# implementation of FrostFS SDK.

Prerequisites

Get the key for your wallet

  1. Get the address
cat <path_to_your_wallet> | jq .accounts[0].address | tr -d '"'
  1. Get the key
neo-go wallet export -w <path_to_your_wallet> -d <address_from_p1>

Example usage

Container

using FrostFS.SDK.ClientV2;
using FrostFS.SDK.ModelsV2;
using FrostFS.SDK.ModelsV2.Enums;
using FrostFS.SDK.ModelsV2.Netmap;

var fsClient = new Client(<your_key>, <your_host>);

// List containers
var containersIds = await fsClient.ListContainersAsync();

// Create container
var placementPolicy = new PlacementPolicy(true, new Replica(1));
var containerId = await fsClient.CreateContainerAsync(
    new Container(
        BasicAcl.PublicRW, 
        placementPolicy
    )
);

// Get container
var container = await fsClient.GetContainerAsync(cId);

// Delete container
await fsClient.DeleteContainerAsync(containerId);

Object

using FrostFS.SDK.ClientV2;
using FrostFS.SDK.ModelsV2;
using FrostFS.SDK.ModelsV2.Enums;
using FrostFS.SDK.ModelsV2.Netmap;

var fsClient = new Client(<your_key>, <your_host>);

// Search regular objects
var objectsIds = await fsClient.SearchObjectAsync(
    cId, 
    ObjectFilter.RootFilter()
);

// Put object
var f = File.OpenRead("cat.jpg");
var cat = new ObjectHeader(
    containerId: cId,
    type: ObjectType.Regular,
    new ObjectAttribute("Filename", "cat.jpg")
);
var oId = await fsClient.PutObjectAsync(cat, f);

// Get object header
var objHeader = await fsClient.GetObjectHeadAsync(cId, oId);

// Get object
var obj = await fsClient.GetObjectAsync(cId, oId);