[#1] Move files to top level directory

Signed-off-by: Ivan Pchelintsev <i.pchelintsev@yadro.com>
This commit is contained in:
Ivan Pchelintsev 2024-05-16 10:23:38 +03:00
parent 013d8a8436
commit 11eff4e23e
76 changed files with 0 additions and 0 deletions

View file

@ -0,0 +1,74 @@
using FrostFS.SDK.ClientV2;
using FrostFS.SDK.ClientV2.Mappers.GRPC;
using FrostFS.SDK.ModelsV2;
namespace FrostFS.SDK.Service;
// TODO: Проверять ответы Grpc
public class FrostFsService
{
private readonly IFrostFSClient _client;
public FrostFsService(IFrostFSClient client)
{
_client = client;
}
public async Task<ContainerId[]> ListContainersAsync()
{
var containersIds = new List<ContainerId>();
var listContainersResponse = await _client.ListContainersAsync();
foreach (var cid in listContainersResponse.Body.ContainerIds)
{
containersIds.Add(ContainerId.FromHash(cid.Value.ToByteArray()));
}
return containersIds.ToArray();
}
public async Task<ContainerId> CreateContainerAsync(ModelsV2.Container container)
{
var createContainerResponse = await _client.CreateContainerAsync(container.ToGrpcMessage());
return ContainerId.FromHash(createContainerResponse.Body.ContainerId.Value.ToByteArray());
}
public async Task<ModelsV2.Container> GetContainerAsync(ContainerId containerId)
{
var getContainerResponse = await _client.GetContainerAsync(containerId.ToGrpcMessage());
return getContainerResponse.Body.Container.ToModel();
}
public async Task DeleteContainerAsync(ContainerId containerId)
{
var deleteContainerResponse = await _client.DeleteContainerAsync(containerId.ToGrpcMessage());
}
public async Task<ObjectHead> GetObjectHeadAsync(ContainerId containerId, ObjectId objectId)
{
var getObjectHeadResponse = await _client.GetObjectHeadAsync(
containerId.ToGrpcMessage(),
objectId.ToGrpcMessage()
);
return getObjectHeadResponse.Body.Header.Header.ToModel();
}
public async Task<ObjectId> PutObjectAsync(ContainerId containerId, Stream data)
{
var putObjectResponse = await _client.PutObjectAsync(containerId.ToGrpcMessage(), data);
return ObjectId.FromHash(putObjectResponse.Body.ObjectId.Value.ToByteArray());
}
public async Task<ObjectId> PutObjectAsync(ContainerId containerId, byte[] data)
{
var putObjectResponse = await _client.PutObjectAsync(containerId.ToGrpcMessage(), new MemoryStream(data));
return ObjectId.FromHash(putObjectResponse.Body.ObjectId.Value.ToByteArray());
}
public async Task DeleteObjectAsync(ContainerId containerId, ObjectId objectId)
{
var deleteObjectResponse = await _client.DeleteObjectAsync(
containerId.ToGrpcMessage(),
objectId.ToGrpcMessage()
);
}
}